我有一个 pandas 数据框,其中包含特定日期的大量记录。我需要按日期对它们进行分组,并检查第二天是否有前一天的记录,特别是我需要输出删除了哪些记录。
这是一个示例数据集:
Date Item
20160101 apple
20160101 pear
20160101 banana
20160102 apple
20160102 pear
20160102 beans
我需要弄清楚每个日期出现的差异,因此对于 2016 年 1 月 2 日的这个示例,添加了一个字符串“beans”,并从组中删除了一个“banana”。
到目前为止,我的代码是:
groups = frame['Item'].groupby(frame['Date'])
for date, item in groups:
for i in item:
if i not in item[:-1]:
print date, item, 'Deleted'
这似乎不起作用。我应该期待:
20160102 , banana, Deleted
感谢您的帮助!
最佳答案
diffs = frame.groupby(frame.columns.tolist()).size().unstack(fill_value=0).diff()
diffs
diffs.mask(diffs.eq(0)).stack().map({-1: 'deleted', 1: 'added'})
Date Item
20160102 banana deleted
beans added
dtype: object
关于python - 如何遍历 pandas 组并检查每个组中是否有字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40228998/