我有兩個問題:
- 我想顛倒從 csv 加載的資料的順序。然后從時間列的第一行獲取時間。在執行 df = df[::-1] 之后,我期望值是 17:00:03 而不是 15:59:56。我哪里做錯了?
- 如何使用 Pandas 將值 17:00:03 舍入到 17:00:00?
我的代碼:
df = pd.read_csv('gold_16_12_2021.csv')
print(df['time'].head())
print(df['time'][0])
df = df[::-1]
print(df['time'].head())
print(df['time'][0])
結果:
0 15:59:56
1 15:59:55
2 15:59:55
3 15:59:32
4 15:59:30
Name: time, dtype: object
15:59:56
79199 17:00:03
79198 17:00:05
79197 17:00:07
79196 17:00:07
79195 17:00:07
Name: time, dtype: object
15:59:56
期待結果:
17:00:03 or 17:00:00
uj5u.com熱心網友回復:
我認為您需要在反轉行順序后使用DataFrame.reset_index重置索引,因為索引不會自動更新。要舍入時間中的秒數,您可以嘗試使用DataFrame.apply將每一行中的時間字串轉換為 datetime 物件,然后將該物件格式化為字串%H:%M:00(假設您不打算將秒數舍入到 30 以上)然后將結果應用于time列或新列(round_time在下面的示例中)
import pandas as pd
from datetime import datetime
df = pd.read_csv('./test.csv')
print(df['time'].head())
print(df['time'][0])
df = df[::-1]
df.reset_index(inplace=True, drop=True)
print(df['time'].head())
print(df['time'][0])
df['round_time'] = df.apply(lambda row: datetime.strptime(row['time'], '%H:%M:%S').strftime("%H:%M:00"), axis=1)
print(df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386223.html
上一篇:從函式回傳熊貓資料幀
下一篇:獲取熊貓行中最大值的列索引
