讓它成為以下 python pandas 資料框:
| 其他 | 價值 | 時間_英國 | total_time_UK | 顏色 | counter_time_UK |
|---|---|---|---|---|---|
| 392 | 身份證 | 0 | 0 | 紅色的 | 8393283 |
| 2393 | 耗氧量 | 930233 | 23423423 | 藍色的 | 322332 |
| 392 | 肯德基 | 0 | 0 | 紅色的 | 0 |
| 323 | bcn | 783732 | 32423 | 綠色 | 42332 |
| 9695 | uie | 0 | 0 | 紅色的 | 3423283 |
| 111 | 薩斯 | 0 | 3423323 | 藍色的 | 322 |
我想要包含字串的列time_UK,以秒為單位將它們的值轉換為 TimeDelta,如果它的值為 0,則轉換為 NaT。
| 其他 | 價值 | 時間_英國 | total_time_UK | 顏色 | counter_time_UK |
|---|---|---|---|---|---|
| 392 | 身份證 | 鈉鹽 | 鈉鹽 | 紅色的 | pd.to_timedelta(8393283) |
| 2393 | 耗氧量 | pd.to_timedelta(930233) | pd.to_timedelta(23423423) | 藍色的 | pd.to_timedelta(322332) |
| 392 | 肯德基 | 鈉鹽 | 鈉鹽 | 紅色的 | 鈉鹽 |
| 323 | bcn | pd.to_timedelta(783732) | pd.to_timedelta(32423) | 綠色 | pd.to_timedelta(42332) |
| 9695 | uie | 鈉鹽 | 鈉鹽 | 紅色的 | pd.to_timedelta(3423283) |
| 111 | 薩斯 | 鈉鹽 | pd.to_timedelta(3423323) | 藍色的 | pd.to_timedelta(322) |
現在我使用下一個代碼:
# Sets the 0 second values to NaT
df.loc[df['time_UK'] == 0.0, 'time_UK'] = pd.NaT
# Converts seconds to TimeDelta type
df['time_UK'] = pd.to_timedelta(df['time_UK'], unit='s')
我很感激所提供的幫助。
uj5u.com熱心網友回復:
用于DataFrame.filterDataFrame df1by columns name time_UK,轉換為浮點數,替換0為DataFrame.mask將所有列轉換為 timedeltas by to_timedelta:
df1 = df.filter(like='time_UK').astype(float)
df[df1.columns] = df1.mask(df1.eq(0)).apply(pd.to_timedelta, unit='s')
print (df)
other value time_UK total_time_UK color counter_time_UK
0 392 idk NaT NaT red 97 days 03:28:03
1 2393 odp 10 days 18:23:53 271 days 02:30:23 blue 3 days 17:32:12
2 392 kfl NaT NaT red NaT
3 323 bcn 9 days 01:42:12 0 days 09:00:23 green 0 days 11:45:32
4 9695 uie NaT NaT red 39 days 14:54:43
5 111 xas NaT 39 days 14:55:23 blue 0 days 00:05:22
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/480593.html
上一篇:pandasDataFrame中x天內每個元素的累積乘積
下一篇:計算一些日期問題
