首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从pandas数据框中的多个datetime列中有条件地选择第一个非空日期?

要从pandas数据框中的多个datetime列中有条件地选择第一个非空日期,可以使用以下方法:

  1. 首先,使用pandas的isnull()函数检查每个datetime列中的缺失值。这将返回一个布尔值的数据框,其中缺失值为True,非缺失值为False。
  2. 然后,使用pandas的apply()函数和lambda表达式,将每一行的datetime列传递给一个自定义函数。在这个函数中,使用pandas的first_valid_index()函数找到第一个非空日期的索引。
  3. 最后,使用pandas的apply()函数和lambda表达式,将每一行的datetime列和第一个非空日期的索引传递给另一个自定义函数。在这个函数中,使用pandas的iloc[]函数选择第一个非空日期,并将其返回。

下面是一个示例代码:

代码语言:txt
复制
import pandas as pd

# 创建示例数据框
data = {'date1': [pd.NaT, pd.Timestamp('2022-01-01'), pd.NaT],
        'date2': [pd.Timestamp('2022-02-01'), pd.NaT, pd.Timestamp('2022-02-02')],
        'date3': [pd.Timestamp('2022-03-01'), pd.Timestamp('2022-03-02'), pd.NaT]}
df = pd.DataFrame(data)

# 自定义函数:选择第一个非空日期
def select_first_nonempty_date(row):
    first_nonempty_date = row[row.first_valid_index()]
    return first_nonempty_date

# 从多个datetime列中选择第一个非空日期
df['first_nonempty_date'] = df.apply(lambda row: select_first_nonempty_date(row), axis=1)

print(df['first_nonempty_date'])

这将输出一个新的列first_nonempty_date,其中包含每一行中第一个非空日期的值。

请注意,以上代码中没有提及任何特定的云计算品牌商。如果需要使用腾讯云相关产品来处理数据框,可以根据具体需求选择适当的腾讯云产品,例如腾讯云数据库、腾讯云函数计算等。具体产品选择和介绍可以参考腾讯云官方文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券