【发布时间】:2021-12-06 00:17:22
【问题描述】:
我有一个包含几列的 pandas 数据框。 2列(包括'report_end_d'和'report_start_d')的数据类型是日期。我想基本上得到这两列之间的差异并找到最大长度。 (我能做到)另外,我想找到那个最大值的值。我的意思是 report_end_d、report_start_d 列的日期。 如果有人可以提出建议,那将是一个很大的帮助! 提前致谢!
# here are my dataframe
report_sales report_end_d report_start_d
0 342 2021-09-04 00:00:00 2021-06-13 00:00:0
1 231 2021-08-29 00:00:00 2021-05-23 00:00:00
2 124 2021-09-04 00:00:00 2021-07-11 00:00:00
3 56 2021-09-04 00:00:00 2021-07-25 00:00:00
4 76 2021-08-28 00:00:00 2021-05-22 00:00:00
dss['length'] = (dss['report_end_d'] - dss['report_start_d'])
report_sales report_end_d report_start_d length
0 342 2021-09-04 00:00:00 2021-06-13 00:00:00 83 days
1 231 2021-08-29 00:00:00 2021-05-23 00:00:00 98 days
2 124 2021-09-04 00:00:00 2021-07-11 00:00:00 55 days
3 56 2021-09-04 00:00:00 2021-07-25 00:00:00 41 days
4 76 2021-08-28 00:00:00 2021-05-22 00:00:00 98 days
So I basically need either index 1 values (report_end_d as - 2021-08-29 00:00:00 report_start_d as- 2021-05-23 00:00:00) or index 4 values (report_end_d as -2021-08-28 00:00:00 report_start_d as- 2021-05-22 00:00:00)
提前致谢!
【问题讨论】:
-
df['length'].idxmax()为您提供具有最大值的(第一)行的索引。 -
所以
df.loc[df['length'].idxmax(), 'report_end_d'] -
@QuangHoang
df.loc[df['length'].idxmax(), 'report_end_d']只会返回“report_end_d”列的值 -
@Meriem OP 说只需要 index 1 值。另外,在你的回答中,不要使用链索引,使用
.loc[dss['length'] == largest, ['report_end_d', 'report_start_day']]。 -
他提到了索引值('report_end_d' 和 'report_start_day')。 @rra 说:另外,我想找到最大值的值。我的答案将根据他想要找到的最大值的最大长度打印两列的值。
标签: python pandas dataframe date datetime