如何计算值在 Pandas DataFrame 中出现的频率

Ahmed Waheed 2023年1月30日

1. `df.groupby().count()`
2. `Series.value_counts()`
3. `df.groupby().size()`

``````import pandas as pd

df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)
``````

`df.groupby().count()` 方法

``````import pandas as pd

df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)

freq = df.groupby(["A"]).count()
print(freq)

freq = df.groupby(["B"]).count()
print(freq)
``````

``````     B
A
jim  4
sal  3
tom  2
A
B
a  4
b  5
``````

`Series.value_counts()` 方法

``````import pandas as pd

df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)

freq = df["A"].value_counts()
print(freq)

freq = df["B"].value_counts()
print(freq)
``````

``````jim    4
sal    3
tom    2
Name: A, dtype: int64
b    5
a    4
Name: B, dtype: int64
``````

`df.groupby().size()` 方法

``````import pandas as pd

df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)

freq = df.groupby(["A", "B"]).size()
print(freq)
``````

``````A    B
jim  a    2
b    2
sal  a    1
b    2
tom  a    1
b    1
dtype: int64
``````