Dedup 变量在数据帧上的特定变量中保持最大值或最小值 python
Dedup variable keeping max or min in specific variable on dataframe python
例如,我想删除一个 ID,它根据我要指定的变量保留最大值或最小值。我可以使用 pandas 中的某些函数来做到这一点吗?
数据作为数据框。 drop_duplicate() 没有帮助,因为它没有保留我想要的值,只是按顺序。
import pandas as pd
df = pd.DataFrame({
'ID': ['245', '144', '245', '245', '144'],
'Acesso': [3, 1, 1, 5, 2],
'Number': [4, 4, 2, 2, 5]
})
我想要像图片一样的输出,在“Acesso”中保留最小值,在“Number”中保留最大值,删除重复的“ID”。
您可以先将 Acesso
的 min
按 ID
分组,将 Number
的 max
按 ID
分组.
然后您只需将它们连接成一个 DataFrame。代码如下所示:
df_acesso_min = df.groupby("ID")["Acesso"].min()
df_number_max = df.groupby("ID")["Number"].max()
df = pd.concat([df_acesso_min, df_number_max], axis=1)
print(df)
# Acesso Number
# ID
# 144 1 5
# 245 1 4
例如,我想删除一个 ID,它根据我要指定的变量保留最大值或最小值。我可以使用 pandas 中的某些函数来做到这一点吗? 数据作为数据框。 drop_duplicate() 没有帮助,因为它没有保留我想要的值,只是按顺序。
import pandas as pd
df = pd.DataFrame({
'ID': ['245', '144', '245', '245', '144'],
'Acesso': [3, 1, 1, 5, 2],
'Number': [4, 4, 2, 2, 5]
})
我想要像图片一样的输出,在“Acesso”中保留最小值,在“Number”中保留最大值,删除重复的“ID”。
您可以先将 Acesso
的 min
按 ID
分组,将 Number
的 max
按 ID
分组.
然后您只需将它们连接成一个 DataFrame。代码如下所示:
df_acesso_min = df.groupby("ID")["Acesso"].min()
df_number_max = df.groupby("ID")["Number"].max()
df = pd.concat([df_acesso_min, df_number_max], axis=1)
print(df)
# Acesso Number
# ID
# 144 1 5
# 245 1 4