在执行groupby(“a”)之前,我有一个类似的系列,我想看看这些组之间的组成差异:
A B C
1 us air 35
2 us gas 34
3 us sun 30
4 us fog 23
5 us mud 33
6 fr air 45
7 fr bug 15
8 fr sun 35
9 fr mud 85
...
有谁能帮我看一下组的差异吗? 我需要的是:
us [air,gas,sun,fog,mud]
eu [air,gas,sun,fog]
fr [air,bug,sun,mud]
非常感谢你,我非常感谢你的帮助
--更新
我想看看每天的作文是否都一样。
当我尝试groupby('MonitorDate')['ItemEngName'].unique()
时,它不起作用
提前谢谢
--更新
多亏了@Perldf.groupby('MonitorDate')['ItemEngName'].apply(list)
有效。但这不是我想要的。我想要的是在一天内得到一个独特的组合(如set)。类似于在groupby之后使用set(['ItemEngName']
所以我试着df.groupby('MonitorDate')['ItemEngName'].unique()
并且
MonitorDate
2010/1/1 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...
2010/1/2 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...
2010/1/3 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...
2010/1/4 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...
2010/1/5 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...
2010/1/6 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...
2010/1/7 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...
Name: ItemEngName, dtype: object
除了1/7外,它们似乎都一样。 但我需要手动检查差异
--更新
预期产出:
再次感谢@perl
MonitorDate
2010/1/1 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ..., WS_HR]
2010/1/7 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...]
Name: ItemEngName, dtype: object
对于更多数据情况,更复杂的条件如下:
MonitorDate
2010/1/1 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ..., WS_HR] (full)
2010/1/7 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, PM2.5, ...] ..(lack WS_HR)
2010/1/8 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM2.5, ..., WS_HR] .(lack PM10)
2010/1/9 [AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, , ...] .......(lack PM2.5)
...
Name: ItemEngName, dtype: object
我只能使用df.groupby('MonitorDate')["ItemEngName"].nunique().unique()
来知道不同数量的项目,但不知道组件的差异。
有什么有效的方法吗
您可以
groupby
列A,然后取B列并将分组值转换为具有apply
的列表:输出:
如果列表可能有重复项,而您只对唯一值感兴趣,那么最好的选择可能是使用@anky评论中的解决方案:
更新:在您的数据集中,它们几乎相同,除了
2010/1/7
没有WS_HR
:输出:
更新2:如果您只想直观地检查哪些天有哪些项目,您可以绘制它。例如,在这里您可以看到
WS_HR
上缺少2010/1/7
:输出:
相关问题 更多 >
编程相关推荐