Pandas给dataframe中某一行的某一个特定位置赋值loc iloc ix
pandas从dataframe中获取值可以用:import numpy as npfrom pandas import Series, DataFrameimport pandas as pddf = DataFrame({'CST_NO': [11, 22, 11, 22, 11, 22],'AMOUNT': [10, 20, 30, np.nan...
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[]代替
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)