在不重新排列列的情况下提取口是心非,并在 python 中找到 cumsum
Extract duplicity without rearranging the column and find cumsum in python
我有一个包含 4000 行的数据集,其中有重复的行(例如 2、3、4 次)。我想随着时间的推移找到重复项的总和。
我已经用这个代码分配口是心非的号码了。但是它重新排列了ID
的位置
df = duplicate_df.value_counts(sort=False, dropna=False).reset_index(name="Duplicity")
输出
ID Time Duplicity
12345 2020 2
12345 2020 2
34567 2021 1
34696 2020 3
34696 2020 3
34696 2020 3
而我想添加口是心非并且 ID 保持不变。
ID Time Duplicity
34696 2020 3
12345 2020 2
12345 2020 2
34696 2020 3
34696 2020 3
34567 2021 1
如何找到口是心非随时间推移的累计值?谢谢。
输入数据:
d = {'ID': [34696, 12345, 12345, 34696, 34696, 34567],
'Time': [2020, 2020, 2020, 2020, 2020, 2021]}
使用groupby
和transform
:
df['Duplicity'] = df.groupby(['ID', 'Time'])['ID'].transform('size')
print(df)
# Output
ID Time Duplicity
0 34696 2020 3
1 12345 2020 2
2 12345 2020 2
3 34696 2020 3
4 34696 2020 3
5 34567 2021 1
我有一个包含 4000 行的数据集,其中有重复的行(例如 2、3、4 次)。我想随着时间的推移找到重复项的总和。
我已经用这个代码分配口是心非的号码了。但是它重新排列了ID
的位置df = duplicate_df.value_counts(sort=False, dropna=False).reset_index(name="Duplicity")
输出
ID Time Duplicity
12345 2020 2
12345 2020 2
34567 2021 1
34696 2020 3
34696 2020 3
34696 2020 3
而我想添加口是心非并且 ID 保持不变。
ID Time Duplicity
34696 2020 3
12345 2020 2
12345 2020 2
34696 2020 3
34696 2020 3
34567 2021 1
如何找到口是心非随时间推移的累计值?谢谢。
输入数据:
d = {'ID': [34696, 12345, 12345, 34696, 34696, 34567],
'Time': [2020, 2020, 2020, 2020, 2020, 2021]}
使用groupby
和transform
:
df['Duplicity'] = df.groupby(['ID', 'Time'])['ID'].transform('size')
print(df)
# Output
ID Time Duplicity
0 34696 2020 3
1 12345 2020 2
2 12345 2020 2
3 34696 2020 3
4 34696 2020 3
5 34567 2021 1