【发布时间】:2014-11-30 16:54:12
【问题描述】:
如果我有一些 DataFrame:
A B
1 a
1 a
1 b
1 c
1 c
1 d
2 a
2 b
2 b
2 d
我可以使用groupby() 命令并计算每个唯一行的事件数。但是现在,我不想计算所有独特的行。我只想计算B 列中有多少唯一值对应于A 列中的某个值。我现在的输出应该是
A UniqueValuesFromB
1 4
2 3
为此我做了下一个代码:
userNumber = []
items = []
for pos in df[column].unique():
dfEvent = df[df[column] == pos]
userNumber.append(len(numpy.unique(dfEvent[correspondingColumn])))
items.append(pos)
然后我从新列表中执行新的新 DF... 编写此片段的更好方法是什么。特别是,我觉得我可以在这里使用groupby() 命令或类似命令。 请只询问pythonic方式(或某些pandas函数的实现),特别是具有强大的时间性能改进。
【问题讨论】:
标签: python pandas for-loop dataframe