在本备忘单中,我们将使用以下速记:
df
| 任何pandas DataFrame对象s
| 任何pandas系列对象
向下滚动时,您会看到我们已经使用副标题组织了相关命令,因此您可以根据要尝试完成的任务快速搜索并找到正确的语法。
另外,快速提醒一下-要使用下面列出的命令,您需要先导入相关的库,如下所示:
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,字符串或文件,并将表提取到数据帧列表pd.read_clipboard()
| 获取剪贴板的内容并将其传递给 read_table()
pd.DataFrame(dict)
| 根据字典,列名称的键,列表的数据值
汇出资料
使用以下命令将DataFrame导出为CSV,.xlsx,SQL或JSON。
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)
| 从迭代创建序列 my_list
df.index = pd.date_range('1900/1/30', periods=df.shape[0])
| 添加日期索引
查看/检查数据
使用这些命令可以查看pandas DataFrame或Series的特定部分。
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 Arrraypd.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')
| 1
用 'one'
s.replace([1,3],['one','three'])
|替换所有等于的值 替换为所有1 'one'
,并 3
用 'three'
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)]
|的行 行 0.7 > col > 0.5
df.sort_values(col1)
| 按col1升序对值进行排序df.sort_values(col2,ascending=False)
| 按col2
降序对值 排序df.sort_values([col1,col2],ascending=[True,False])
| 按 col1
升序排序,然后 col2
按降序排序df.groupby(col)
| 返回值的GROUPBY对象从一个栏df.groupby([col1,col2])
| 返回来自多个列的值的groupby对象df.groupby(col1)[col2]
| 返回中的值的平均值 col2
,按中的值分组 col1
(平均值可以用统计模块中的几乎所有函数替换 )df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean)
| 创建一个数据透视表组通过 col1
,并计算平均值的 col2
和 col3
df.groupby(col1).agg(np.mean)
| 在所有列中找到每个唯一col1
组的平均值 df.apply(np.mean)
| np.mean()
在每列上应用功能 nf.apply(np.max,axis=1)
| np.max()
在每行上应用功能
加入/合并
使用这些命令将多个数据帧组合为一个数据帧。
df1.append(df2)
| 将行添加 df1
到的末尾 df2
(各列应相同)pd.concat([df1, df2],axis=1)
。将列添加 df1
到的末尾 df2
(行应相同)df1.join(df2,on=col1,how='inner')
| SQL样式将列 df1
与 df2
行所在的列col
具有相同值的列连接起来。 'how'
可以是一个 'left'
, 'right'
, 'outer'
, 'inner'
统计
使用这些命令来执行各种统计测试。(这些也都可以应用于系列。)
df.describe()
| 数字列的摘要统计信息df.mean()
| 返回均值的所有列df.corr()
| 返回DataFrame中各列之间的相关性df.count()
。返回非空值的每个数据帧列中的数字df.max()
| 返回每列中的最高值df.min()
| 返回每列中的最小值df.median()
| 返回每列的中位数df.std()
| 返回每列的标准偏差
下载此备忘单的可打印版本
如果您想下载该备忘单的可打印版本,可以在这里下载。