大家好,我是小寒。 今天来分享 20 个常用的 pandas 使用技巧。如果觉得不错,点赞、转发安排起来。
1、以 Markdown 格式输出 DataFrame
import pandas as pddf = pd.DataFrame({'a': [1, 2, 3, 4],'b': [5, 6, 7, 8]})# You can control the printing of the index column by using the flag index.
print(df.to_markdown(index=True))
| | 一个 | 乙 |
|---:|----:|----:|
| 0 | 1 | 5 |
| 1 | 2 | 6 |
| 2 | 3 | 7 |
| 3 | 4 | 8 |
2、将行分组到列表中
通常用 groupby
获取同一组中行的统计信息,例如计数、均值、中位数等。如果要将行分组到列表中,请使用“ lambda x: list(x)
”。
import pandas as pddf = pd.DataFrame({"col1": [1, 2, 3, 4, 3],"col2": ["a", "a", "b", "b", "c"],"col3": ["d", "e", "f", "g", "h"],}
)# Group by col2
df.groupby(["col2"]).agg({"col1": "mean", # get mean"col3": lambda x: list(x) # get list}
)
3、DataFrame.explode()
使用 DataFrame
时,如果要将字符串转换为列表,然后将列表中的元素拆分为多行,请使用 str.split()
和 explode()
方法。
import pandas as pddf = pd.DataFrame({"a": ["1,2", "4,5"],"b": [11, 13]})# Turn strings into lists
df.a = df.a.str.split(",")
df
df.explode("a", ignore_index=False)
4、DataFrame.copy()
你是否曾经尝试过使用 “ = ” 来复制一个 DataFrame ?你不会得到一份副本,改变新的DataFrame
也会改变原来的DataFrame
。
制作副本的更好方法是使用 df.copy()
。现在,更改副本不会影响原始DataFrame
。
import pandas as pd
df = pd.DataFrame({"col1": [1, 2, 3],"col2": [4, 5, 6]})df2 = df
#改变 df2
df2["col1"] = [7, 8, 9]
# df 也跟着改变
df
df = pd.DataFrame({"col1": [1, 2, 3],"col2": [4, 5, 6]})# 使用 copy 创建一个副本
df3 = df.copy()
# 改变 df3
df3["col1"] = [7, 8, 9]
# df 不会改变
df
5、Groupby().count 与 Groupby().size
-
如果要获取 Pandas
DataFrame
中一列的元素个数 ,请使用groupby
和count
。 -
如果要获取由 2 列或更多列组成的组的大小,请改用
groupby
和size
import pandas as pd
df = pd.DataFrame({"col1": ["a", "b", "b", "c", "c", "d"],"col2": ["S", "S", "M", "L", "L", "L"]}
)# get the count of elements in one column
df.groupby(["col1"]).count()
df.groupby(["col1", "col2"]).size()
6、相关性
7、交叉表
8、DataFrame.query()
9、pandas.melt()
10、重命名聚合列
11、归一化值计数
12、df.transform()
13、填写空值
14、计算缺失值
15:过滤 DataFrame 中的列
16、自动转换数据类型
17、读取 HTML 表格
18、最大和最小
19、创建排名列
20、DataFrame 中的颜色值
20 个 pandas 常用操作 - 寒舍http://python1234.cn/archives/pandas2