pandas从dataframe中获取值可以用:

import numpy as np
from pandas import Series, DataFrame

import pandas as pd

df = DataFrame({'CST_NO': [11, 22, 11, 22, 11, 22],
                'AMOUNT': [10, 20, 30, np.nan, 1000, 2000],
                'START_TIME':['2016-08-21 17:15:15','2016-08-21 22:22:22',
                             '2016-08-22 16:16:16','2016-08-22 20:23:23',
                              '2016-08-23 15:12:12','2016-08-23 13:12:12'],
                'CLIENT_IP':['192.1', '192.2', '192.1', '192.3', '192.2','192.3'],
                'CLIENT_MAC':['ios', 'win', 'win', 'ios', 'ios','win'],
                'TO':['WEI', 'BAI', 'WEI', 'ZHU', 'WANG','ZHU'],
                })
a1 = df.iloc[0]["AMOUNT"]
a2 = df.iloc[0][1]
b1 = df.loc[1]['CST_NO']
b2 = df.loc[1, 'CST_NO']
print(a, aa)

结果:
10.0 10.0
22 22

pandas给dataframe中某一位置赋值:

df.iloc[0]["AMOUNT"] = "________"
print(df)

df.iloc[0][2] = "~~~~~~"
print(df)

df.loc[1]['CST_NO'] = "+++++++++++"
print(df)

df.loc[2,'CST_NO'] = "||||||||||"
print(df)

只有第四个成功被修改替换,其他三个都没有使df发生改变。

注:dataframe某一特定位置赋值,只能用df.loc[ROW_INT,COL_NAME]*

------------------------------------分割线----------------------------------------

iloc,loc,ix(现在已经被废弃)的区别:

.loc 的使用

.loc[],中括号里面是先行后列,以逗号分割,行和列分别是行标签和列标签,比如我要得到数字5,那么就就是:

data.loc[“b”,“B”]

.iloc

.iloc[]与loc一样,中括号里面也是先行后列,行列标签用逗号分割,与loc不同的之处是,.iloc 是根据行数与列数来索引的,不能用列名称进行索引

data.iloc[1:3,1:3]

.ix

.ix我发现,上面两种用法他都可以,它既可以根据行列标签又可以根据行列数

data.ix[1,1]
data.ix[“b”,“B”]

在pandas的1.0.0版本开始,移除了Series.ix and DataFrame.ix 方法。

可以用df.loc[]代替

参考博客:点击跳转1点击跳转2

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐