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[]代替