gpt4 book ai didi

python - 如何在 Pandas 的数据框中获取多个时间戳系列的差异?

转载 作者:行者123 更新时间:2023-12-01 09:25:09 25 4
gpt4 key购买 nike

我想获取数据帧中多个时间戳列之间的 timedelta 间隔。此外,有几个条目是 NaN。

原始DF:

       0     1     2     3     4     5 
0 date1 date2 NaN NaN NaN NaN
1 date3 date4 date5 date6 date7 date8

期望的输出:

          0           1           2           3           4
0 date2-date1 NaN NaN NaN NaN
1 date4-date3 date5-date4 date6-date5 date7-date6 date8-date7

最佳答案

我认为您可以使用连续的 NaN 来结束行:

df = pd.DataFrame([['2015-01-02','2015-01-03', np.nan, np.nan],
['2015-01-02','2015-01-05','2015-01-07','2015-01-12']])
print (df)
0 1 2 3
0 2015-01-02 2015-01-03 NaN NaN
1 2015-01-02 2015-01-05 2015-01-07 2015-01-12

df = df.apply(pd.to_datetime).ffill(axis=1).diff(axis=1)
print (df)
0 1 2 3
0 NaT 1 days 0 days 0 days
1 NaT 3 days 2 days 5 days

详细信息:

首先将所有列转换为日期时间:

print (df.apply(pd.to_datetime))
0 1 2 3
0 2015-01-02 2015-01-03 NaT NaT
1 2015-01-02 2015-01-05 2015-01-07 2015-01-12

通过向前填充每行的最后一个值来替换 NaN:

print (df.apply(pd.to_datetime).ffill(axis=1))
0 1 2 3
0 2015-01-02 2015-01-03 2015-01-03 2015-01-03
1 2015-01-02 2015-01-05 2015-01-07 2015-01-12

通过 diff 获取差异:

print (df.apply(pd.to_datetime).ffill(axis=1).diff(axis=1))
0 1 2 3
0 NaT 1 days 0 days 0 days
1 NaT 3 days 2 days 5 days

关于python - 如何在 Pandas 的数据框中获取多个时间戳系列的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50480517/

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