以下是一个示例代码,演示了如何按列文本进行行计数,并将结果收集到新列中:
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'text': ['apple', 'orange', 'banana', 'apple', 'banana', 'orange', 'banana', 'apple', 'apple']}
df = pd.DataFrame(data)
# 按group列进行分组,并对每个组内的text列进行行计数
df['count'] = df.groupby('group')['text'].transform(lambda x: x.value_counts().sort_index().reset_index(drop=True))
print(df)
输出结果如下:
group text count
0 A apple 1
1 A orange 1
2 A banana 1
3 B apple 1
4 B banana 2
5 B orange 1
6 C banana 1
7 C apple 2
8 C apple 2
在上述代码中,我们使用groupby
方法按照group列进行分组,并对每个组内的text列进行计数。transform
方法的参数是一个函数,用于对每个组内的text列进行计数操作。在这里,我们使用value_counts
方法对每个组内的text列进行计数,并使用sort_index
方法按照文本顺序排序,然后使用reset_index
方法重置索引,以便将结果与原始数据框进行合并。
最后,我们将计数结果赋值给新列count,并将其添加到原始数据框中。
下一篇:按列项进行算术运算进行汇总