gpt4 book ai didi

python - 如果存在,如何为每一行返回最低的非 nan 值

转载 作者:行者123 更新时间:2023-12-05 00:44:55 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

        import pandas as pd
import numpy as np
data = [[np.nan, np.nan, np.nan], [np.nan, '1987-09-01', np.nan], [np.nan, '1987-09-01', '1988-09-01']]
df = pd.DataFrame(data, columns = ['1', '2', '3'])

我的目标如下:
  • 对于第一行,我想返回 南值
  • 对于第二行,我想返回 日期
  • 对于第三行,我想返回 最早的日期 ('1987-09-01') 并返回 索引包含两个值的行(在本例中为 2)

  • 第一次尝试
           df.stack().groupby(level = 0).first() 

    但这导致只返回每行遇到的第一个日期,并删除完整的 nan 行。

    提前感谢您的帮助。如果有任何问题,请告诉我!

    最佳答案

    将列转换为日期时间并通过 min 获取每行最旧的日期:

    s = df.apply(pd.to_datetime).min(axis=1)
    print (s)
    0 NaT
    1 1987-09-01
    2 1987-09-01
    dtype: datetime64[ns]

    关于python - 如果存在,如何为每一行返回最低的非 nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59103624/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com