【发布时间】:2020-09-04 22:23:21
【问题描述】:
下面是一个数据框,我在其中计算前一行 STime 和当前行 STime 之间的时间差。但是,我真正想做的是根据其他条件(例如具有相同日期)填充此 timeDiffTemp 列。是的,我对 pandas 是全新的 - 并且意识到这对你们中的许多人来说是微不足道的。所以...提前感谢您的热心帮助。
SDate STime timeDiffTemp
0 2017-12-06 07:00:00 NaT
1 2017-12-06 09:55:00 02:55:00
2 2017-12-06 10:25:00 00:30:00
3 2017-12-06 15:30:00 05:05:00
4 2017-12-07 10:00:00 -1 days +18:30:00
df["STime"] = pd.to_datetime(df["STime"]) # convert STime to a datetime field
df["SDate"] = pd.to_datetime(df["SDate"]) # convert STime to a datetime field
df['timeDiffTemp'] = df['STime'] - df['STime'].shift(1)
df['timeDiff'] = df['timeDiffTemp'].apply(lambda x: df['timeDiffTemp'] if (df['SDate'] == df['SDate'].shift(1)) else 'NA')
【问题讨论】:
-
对数据框格式感到抱歉
标签: python pandas if-statement lambda conditional-statements