我从不同的气象机构那里获得了一些天气数据,我正在尝试计算 Pandas 中的读数。我需要:
- 删除同一标签/城市的重复读数
- 创建一个包含唯一读数数量的新列
- 为每个机构创建一个新列,其中包含该索引的(唯一)阅读量
当前数据结构:
City Reading Agency
NEW YORK 80 US
NEW YORK 142 GB
NEW YORK 200 GB
NEW YORK 80 US
TORONTO 96 US
TORONTO 79 US
TORONTO 83 US
TORONTO 73 GB
TORONTO 67 US
TORONTO 67 US
期望的输出:
City Total US GB
NEW YORK 3 1 2
TORONTO 5 4 1
我找到了几种方法来做到这一点,但它们非常困惑。如果有人有一个优雅的解决方案,我将非常感激。
谢谢。
最佳答案
您可以使用 groupby
聚合nunique
, 然后通过 unstack
reshape 最后insert
新列 Total
by sum
:
df = df.groupby(['City','Agency'])['Reading'].nunique().unstack(fill_value=0)
df.insert(0, 'Total', df.sum(axis=1))
print (df)
Agency Total GB US
City
NEW YORK 3 2 1
TORONTO 5 1 4
关于python - Pandas 计算每个索引的唯一值并将唯一行转换为汇总列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40971500/