将函数应用于熊猫中数据框的每一列
Posted
技术标签:
【中文标题】将函数应用于熊猫中数据框的每一列【英文标题】:Apply a function to every column of a dataframe in pandas 【发布时间】:2017-08-23 20:30:11 【问题描述】:我有这个:
df = DataFrame(dict(person= ['andy', 'rubin', 'ciara', 'jack'],
item = ['a', 'b', 'a', 'c'],
group= ['c1', 'c2', 'c3', 'c1'],
age= [23, 24, 19, 49]))
df:
age group item person
0 23 c1 a andy
1 24 c2 b rubin
2 19 c3 a ciara
3 49 c1 c jack
我想要做的是获取每列中唯一项目的长度。 现在我知道我可以这样做:
len(df.person.unique())
对于每一列。
有没有办法一次性对所有列执行此操作?
我尝试过:
for column in df.columns:
print(len(df.column.unique()))
但我知道这是不对的。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:你想要pd.Series.nunique
df.apply(pd.Series.nunique)
age 4
group 3
item 3
person 4
dtype: int64
【讨论】:
从没想过我能做到这一点。整洁。 @xen.m.rph 既然您有 15 个代表,请随时投票。其他回答者也将不胜感激,因为他们竭尽全力帮助您。【参考方案2】:您可以将每列中唯一项目的数量设为:
for column in df.columns:
print(len(df[column].unique()))
【讨论】:
我是 python/pandas 的新手,这真的很有帮助。【参考方案3】:你可以使用:
for column in df:
print(len(df[column].unique()))
4
3
3
4
或者:
for column in df:
print(df[column].nunique())
4
3
3
4
【讨论】:
【参考方案4】:为什么不这样呢,
df.nunique()
【讨论】:
以上是关于将函数应用于熊猫中数据框的每一列的主要内容,如果未能解决你的问题,请参考以下文章