3 个不常见但非常实用的Pandas 使用技巧
来源:DeepHub IMBA 本文共1000字,建议阅读5分钟 本文为你演示一些不常见,但是却非常有用的 Pandas 函数。
import numpy as np
import pandas as pd
df = pd.DataFrame({
"date": pd.date_range(start="2021-11-20", periods=100, freq="D"),
"class": ["A","B","C","D"] * 25,
"amount": np.random.randint(10, 100, size=100)})
df.head()
1. To_period
df["month"] = df["date"].dt.to_period("M")
df["quarter"] = df["date"].dt.to_period("Q")
df.head()
df["month"].value_counts()
# output
2021-12 31
2022-01 31
2022-02 27
2021-11 11
Freq: M, Name: month, dtype: int64
--------------------------
df["quarter"].value_counts()
# output
2022Q1 58
2021Q4 42
Freq: Q-DEC, Name: quarter, dtype: int64
2. Cumsum 和 groupby
df["cumulative_sum"] = df["amount"].cumsum()
df.head()
df["class_cum_sum"] = df.groupby("class")["amount"].cumsum()
让我们查看 A 类的结果。
df[df["class"]=="A"].head()
3. Category数据类型
df.dtypes
# output
date datetime64[ns]
class object
amount int64
month period[M]
quarter period[Q-DEC]
cumulative_sum int64
class_cum_sum int64
df["class"].astype("category") =
df.dtypes
# output
date datetime64[ns]
class object
amount int64
month period[M]
quarter period[Q-DEC]
cumulative_sum int64
class_cum_sum int64
class_category category
dtype: object
df.memory_usage()
# output
Index 128
date 800
class 800
amount 800
month 800
quarter 800
cumulative_sum 800
class_cum_sum 800
class_category 304
dtype: int64
评论