pandas库学习笔记

版权声明: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开始

LK2
在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)  

猜你喜欢

转载自blog.csdn.net/qq_40527086/article/details/82827831
今日推荐