pandas DataFrame的一些操作

最近做数据预处理遇到了一些小问题,记录一下。

1.数据的读取和存储

一般读取数据使用pandas里的read_csv

pd.read_csv(path, sep=',', header=None, nrows=n)

另外通用的读取为:

with open(filename, 'r', encoding='utf-8') as fr:  #这里注意如果是中文的文件可能需要改encoding为gbk

  fr.readlines()

相对应的写入操作为

df.to_csv(path,header=0, index=0)#不保留行列名的写法

with open(filename, 'w', encoding='utf-8') as fw:

  fr.writelines(str+'\n')

通用的读取数据要求格式为string,因此对于列表格式还要把它转成string,字符串和列表相互转化如下:

test_str = " ".join(test_list)

test_list=list(test_str)  

2.DataFrame常用的数据处理

查看前几行:df.head()

查看某个元素:df.ix[:, :] #可以根据索引选取

条件选取元素:df.loc[:, df[column]><=k],df.iloc[];二者区别在于前者根据名字选取,后者根据索引值选取

空值处理:

查询每列空值总数:df.isnull().sum()

选取某列非空值:df[df[col].notnull()&df[col]!='']

填充空值:df.fillna({col:value...})

删除空值:df.dropna(axis=0, how=‘any’) #0表示行,1表示列,any表示任何含有nan的行或列,all表示所有值都为nan的行或列

替换空值:df.replace(to_replace, value)#用value代替to_replace

查看行列数量:df.shape()

转成list:df.tolist()

字典转DataFrame:pd.DataFrame.from_dict(dict, orient='index', columns=[col])

DataFrame转字典:dict = df.set_index(col1).T.to_dict(col2)

3.字符串合并

str = str1+ " " +str2  #文本处理会用到

4.DataFrame的groupby操作

df.groupby['A'].apply(lambda)

df.groupby['A'].agg({'B':'count'})

posted @ 2019-05-16 11:06  xiaonezha  阅读(361)  评论(0编辑  收藏  举报