Pandas可以说是数据科学中最重要的Python软件包。它不仅为您提供了许多使数据处理变得更容易的方法和功能,而且还针对速度进行了优化,与使用Python内置函数处理数字数据相比,它具有明显的优势。第一次学习 Pandas时会很难记住您需要的所有功能和方法,这里将这种常用的一些操作方式汇总在一起,希望能有所帮助!
在本文中,我们使用以下简写形式:
df 任何Pandas DataFrame对象s 任何pandas Series对象
使用以下脚本导入:
import pandas as pdimport numpy as np
pd.read_csv(filename) 从CSV文件读取数据pd.read_table(filename) 从分隔的文本文件(例如TSV)读取数据pd.read_excel(filename) 从Excel文件读取数据pd.read_sql(query, connection_object) 从SQL表/数据库中读取数据pd.read_json(json_string) 从JSON格式的字符串,URL或文件中读取数据pd.read_html(url) 解析html URL,字符串或文件,并将表提取到Dataframe列表pd.read_clipboard() 获取剪贴板的内容并将其传递给read_table()pd.DataFrame(dict) 从字典中读取数据,列名称的keys,列表中数据的values
df.to_csv(filename) 写入CSV文件df.to_excel(filename) 写入Excel文件df.to_sql(table_name, connection_object) 写入SQL表df.to_json(filename) 以JSON格式写入文件
对于测试代码段很有用
pd.DataFrame(np.random.rand(20,5)) 5列20行的随机浮动pd.Series(my_list) 从列表创建序列df.index = pd.date_range('1900/1/30', periods=df.shape[0]) 添加日期索引
df.head(n) DataFrame的前n行df.tail(n) DataFrame的最后n行df.shape 行数和列数df.info() 索引,数据类型和内存信息df.describe() 数字列的摘要统计信息s.value_counts(dropna=False) 查看唯一值和计数df.apply(pd.Series.value_counts) 所有列的唯一值和计数
df[col] 返回带有标签col的列为Seriesdf[[col1, col2]] 返回列作为新的DataFrames.iloc[0] 按位置选择s.loc['index_one'] 按索引选择df.iloc[0,:] 第一行df.iloc[0,0] 第一列,第一行的一个元素
df.columns = ['a','b','c'] 重命名列pd.isnull() 检查空值,返回Boolean 列表pd.notnull() 对应 pd.isnull()df.dropna() 删除所有包含空值的行df.dropna(axis=1) 删除所有包含空值的列df.dropna(axis=1,thresh=n) 删除所有具有少于n个非空值的行df.fillna(x) 将所有空值替换为xs.fillna(s.mean()) 用均值替换所有空值s.astype(float) 将序列的数据类型转换为floats.replace(1,'one') 用 'one' 替换所有value等于 '1' 的元素s.replace([1,3],['one','three']) 用 'one' 替换所有value等于 '1' 的元素,用 'three' 替换所有value等于 '3 的元素df.rename(columns=lambda x: x + 1) 列的重命名df.rename(columns={'old_name': 'new_ name'}) 选择性重命名df.set_index('column_one') 更改索引df.rename(index=lambda x: x + 1) 重命名索引
df[df[col] > 0.5] 选择所有 'col'列的值大于0.5的所有子集df[(df[col] > 0.5) & (df[col] < 0.7)] 选择所有 'col'列的值大于0.5或者'col'列的值小于0.7的所有子集df.sort_values(col1) 按'col1' 列的升序对DataFrame进行排序df.sort_values(col2,ascending=False) 按'col1' 列的降序对DataFrame进行排序df.sort_values([col1,col2],ascending=[True,False]) 按'col1' 升序排序,然后'col2' 按降序排序df.groupby(col) 按'col' 分组,并返回分组对象df.groupby([col1,col2]) 按'col1' ,'col2'两个列分组,并返回分组对象df.groupby(col1)[col2] 按'col' 分组,并取出Dataframe中的'col2'列df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean) 创建数据透视表,按'col1'分组,并计算的平均值'col2'和'col3'的均值(mean)df.groupby(col1).agg(np.mean) 按'col1'分组,并得到所有列的平均值(mean)df.apply(np.mean) 在每列上应用 np.mean()函数nf.apply(np.max,axis=1) 在每行上应用np.max()函数
df1.append(df2) 将df2的所有行添加到df1的末尾(各列应相同)pd.concat([df1, df2],axis=1)。将df2的列添加df1的列的末尾(行应相同)df1.join(df2,on=col1,how='inner') 类似SQL样式,将列df1与df2使用列'col1'做join的操作,通过 'how'关键字完成'left','right','outer','inner'的操作
这些也都可以应用于序列(series)。
df.describe() 数字列的摘要统计信息df.mean() 返回所有列的平均值df.corr() 返回DataFrame中各列之间的相关性df.count()。返回每个Dataframe列非空值的数量df.max() 返回每列中的最高值df.min() 返回每列中的最小值df.median() 返回每列的中位数df.std() 返回每列的标准偏差
点击关注,如果发现任何不正确的地方,或者想分享有关上述主题的更多信息,欢迎反馈。