python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
相信很多人像我一样在学习python,pandas过程中对数据的选取和修改有很大的困惑(也许是深受Matlab)的影响。。。
到今天终于完全搞清楚了!!!
先手工生出一个数据框吧
importnumpyasnp importpandasaspd df=pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))
df是这样子滴
那么这三种选取数据的方式该怎么选择呢?
一、当每列已有columnname时,用df['a']就能选取出一整列数据。如果你知道columnnames和index,且两者都很好输入,可以选择.loc
df.loc[0,'a'] df.loc[0:3,['a','b']] df.loc[[1,5],['b','c']]
由于这边我们没有命名index,所以是DataFrame自动赋予的,为数字0-9
二、如果我们嫌columnname太长了,输入不方便,有或者index是一列时间序列,更不好输入,那就可以选择.iloc了。这边的i我觉得代表index,比较好记点。
df.iloc[1,1] df.iloc[0:3,[0,1]] df.iloc[[0,3,5],0:2]
iloc使得我们可以对column使用slice(切片)的方法对数据进行选取。
三、.ix的功能就更强大了,它允许我们混合使用下标和名称进行选取。可以说它涵盖了前面所有的用法。基本上把前面的都换成df.ix都能成功,但是有一点,就是
df.ix[[..1..],[..2..]],1框内必须统一,必须同时是下标或者名称,2框也一样。BTW,1框是用来指定row,2框是指定column,当然上面所有的取数方法都是这个规则。
这就是我目前的领悟吧。
以上这篇pythonpandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。