python - python数据框相关问题
问题描述
对于以下数据框,
date1 date2 userid
2020-10-20 2020-10-22 101
2020-09-10 2020-10-11 101
2020-10-20 2020-10-23 101
2020-12-05 2020-12-06 102
2020-12-04 2020-12-06 102
我能得到这样的输出吗
date1 date2 userid
2020-10-20 2020-10-22 101
2020-09-10 2020-10-11 101
2020-12-05 2020-12-06 102
date1 和 date2 的关系应该是 1:1,反之亦然。
解决方案
您可以按每列分组并获取第一项:
data_string = io.StringIO('''date1 date2 userid
2020-10-20 2020-10-22 101
2020-09-10 2020-10-11 101
2020-10-20 2020-10-23 101
2020-12-05 2020-12-06 102
2020-12-04 2020-12-06 102''')
df = pd.read_csv(data_string,sep=r'\s+')
df = df.groupby(['date2'],as_index=False).first()
df = df.groupby(['date1'],as_index=False).first()
df
>>>
date1 date2 userid
0 2020-09-10 2020-10-11 101
1 2020-10-20 2020-10-22 101
2 2020-12-05 2020-12-06 102
请注意,此数据框最终已排序
推荐阅读
- r - 通过 dplyr 聚合 - 将单个列从因子变为数字
- spring-oauth2 - 在 Spring Oauth 中禁用授权端点
- javascript - Redux-mapStateToProps 不工作
- date - 报告上的 SSRS 预设或自定义日期选择
- asp.net-core - 从视图组件抛出的错误不显示错误页面
- java - 拥有多个 DAO 可以吗?
- sprite-kit - 如何使用 ArKit 1.5 计算 SpriteKit 坐标上的图像大小?
- java - 在多个 ArrayLists 中搜索整数的数量
- ios - 通用链接不起作用
- google-apps-script - 将二维码从 Google 表格发送到电子邮件地址