python - 在python中按日期获取唯一列值
问题描述
我已经生成了这个数据框:
np.random.seed(123)
len_df = 10
groups_list = ['A','B']
dates_list = pd.date_range(start='1/1/2020', periods=10, freq='D').to_list()
df2 = pd.DataFrame()
df2['date'] = np.random.choice(dates_list, size=len_df)
df2['value'] = np.random.randint(232, 1532, size=len_df)
df2['group'] = np.random.choice(groups_list, size=len_df)
df2 = df2.sort_values(by=['date'])
df2.reset_index(drop=True, inplace=True)
date group value
0 2020-01-01 A 652
1 2020-01-02 B 1174
2 2020-01-02 B 1509
3 2020-01-02 A 840
4 2020-01-03 A 870
5 2020-01-03 A 279
6 2020-01-04 B 456
7 2020-01-07 B 305
8 2020-01-07 A 1078
9 2020-01-10 A 343
我需要在同一日期摆脱重复的组。我只希望一组在日期中只出现一次。
结果
date group value
0 2020-01-01 A 652
1 2020-01-02 B 1174
2 2020-01-02 A 840
3 2020-01-03 A 870
4 2020-01-04 B 456
5 2020-01-07 B 305
6 2020-01-07 A 1078
7 2020-01-10 A 343
解决方案
.drop_duplicates()
在 pandas 库中,可以让你做到这一点。在文档中阅读更多内容。
df2.drop_duplicates(subset=["date", "group"], keep="first")
Out[9]:
date group value
0 2020-01-01 A 652
1 2020-01-02 B 1174
3 2020-01-02 A 840
4 2020-01-03 A 870
6 2020-01-04 B 456
7 2020-01-07 B 305
8 2020-01-07 A 1078
9 2020-01-10 A 343
推荐阅读
- json - 如何将 json 数据转换为下面提到的格式
- android - Android中的firebase图像检索
- ios - Settings.bundle 本地化损坏
- ruby - 从哈希数组中的哈希中获取 id
- javascript - 为什么 .assign 对象合并中的 setter/getter 定义不起作用?
- sparql - Jena TDB 中的图形查询:CLI 有效/代码失败
- r - 无法动画化结果。未找到保存电影功能
- swift - 协议扩展初始化程序强制调用 self.init
- amazon-web-services - ASG 无法再启动具有加密 EBS 根卷的实例
- android - 在我的 android 应用程序中,我的应用程序中出现了一个名为 com 的文件夹,其中只有一个 MANIFEST.MF 文件。不知道怎么出现的