版权声明:All rights reserved by LK12, reprint please explain the source https://blog.csdn.net/qq_40527086/article/details/82827831
pandas库学习笔记
##读取文件
详情请参考
pandas读取文件操作
#读取txt文件/csv文件(逗号分隔)
功能:加载带有分隔符的数据,默认分隔符是逗号
#读取txt/xlsx文件(制表符空格分隔)
功能:加载带分隔符的数据,默认分隔符为制表符("\t")。
我们可以通过指定read_table的sep参数来修改默认的分隔符
#读取没有标题的文件
#设置header参数,读取文件的时候没有标题
data1 = pd.read_csv("data.txt",header=None)
#设置names参数,来设置文件的标题
data2 = pd.read_csv("data.txt",names=["a","b","c","d","name"])
##选取特定索引的列
loc用于访问自定义下标的索引值,iloc则使用的默认数组下标
注意,不能用iloc,iloc是将序列当作数组来访问,下标又会从0开始
在dataframe中根据一定的条件,得到符合要求的某行元素所在的位置。
df = pd.DataFrame({'BoolCol': [1, 2, 3, 3, 4],'attr': [22, 33, 22, 44, 66]},
index=[10,20,30,40,50])
print(df)
a = df[(df.BoolCol==3)&(df.attr==22)].index.tolist()
print(a)
得到某一个值所在的行
df[df['列名'].isin([相应的值])]
##删改某行
删除表中的某一行或者某一列更明智的方法是使用drop,它不改变原有的df中的数据,而是返回另一个dataframe来存放删除后的数据
查找无效值
df[df.isnull()] #返回的是个true或false的Series对象(掩码对象),进而筛选出我们需要的特定数据。
df[df.notnull()]
df.dropna() #将所有含有nan项的row删除
df.dropna(axis=1,thresh=3) #将在列的方向上三个为NaN的项删除
df.dropna(how='ALL') #将全部项都是nan的row删除
无效值填充
df.fillna(0)
df.fillna({1:0, 2:0.5}) #对第一列nan值赋0,第二列赋值0.5
df.fillna(method='ffill') #在列方向上以前一个值作为值赋给NaN
删除行列
drop函数默认删除行,列需要加axis = 1
print frame.drop(['a'])
print frame.drop(['Ohio'], axis = 1)
1. DF= DF.drop('column_name', axis=1);
2. DF.drop('column_name',axis=1, inplace=True)
3. DF.drop([DF.columns[[0,1, 3]]], axis=1, inplace=True)