【问题标题】:In Pandas Dataframe, how to get the indexes of another column base on a known values in a column?在 Pandas Dataframe 中,如何根据列中的已知值获取另一列的索引?
【发布时间】: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


【解决方案1】:
largest = dss['length'].max()
dss[['report_end_d','report_start_d']] [dss['length'] == largest]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-17
    • 2013-05-17
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 2019-01-11
    • 2012-10-15
    • 2021-09-15
    相关资源
    最近更新 更多