大家好,我是小寒。 今天来分享 20 个常用的 pandas 使用技巧。如果觉得不错,点赞、转发安排起来。
1、以 Markdown 格式输出 DataFrame
import pandas as pd
df = 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 pd
df = 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 pd
df = 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