在Pandas中,如果你想要为数据框(DataFrame)的每一列添加一个新列,该列表示每个元素在该列中出现的次数,你可以使用value_counts()
方法结合apply()
函数来实现。以下是一个示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8]
}
df = pd.DataFrame(data)
# 定义一个函数来计算每个元素的出现次数并添加到新的列
def add_count_column(column):
count_series = column.value_counts()
return column.apply(lambda x: count_series[x])
# 对每一列应用这个函数
for column in df.columns:
df[f'{column}_count'] = add_count_column(df[column])
print(df)
这段代码会输出一个新的DataFrame,其中包含了原始数据以及每个列元素出现次数的新列。
value_counts()
可能会导致性能问题。可以考虑使用groupby().size()
来替代,或者使用更高效的算法。通过上述方法和代码示例,你可以为Pandas DataFrame中的每一列添加一个表示元素出现次数的新列。
领取专属 10元无门槛券
手把手带您无忧上云