我正在嘗試查找某個值“PAY”出現在每小時范圍列中的次數。
我用熊貓制作了資料框:
df = pd.read_json('test.json')
print(df.head(3))
print(df.dtypes)
TransactionCode Date
1 PAY 2021-12-09T10:23:29.242 01:00
2 PAY 2021-12-09T10:23:02.978 01:00
3 PAY 2021-12-09T10:22:48.659 01:00
TransactionCode object
Date object
在我將日期列分成兩列后,“日期”和“時間”:
df['Time'] = pd.to_datetime(df['Date']).dt.time
df['Date'] = pd.to_datetime(df['Date']).dt.date
print(df.head())
print(df.dtypes)
TransactionCode Date Time
1 PAY 2021-12-09 10:23:29.242000
2 PAY 2021-12-09 10:23:02.978000
3 PAY 2021-12-09 10:22:48.659000
4 PAY 2021-12-09 11:32:48.659000
5 PAY 2021-12-09 11:45:12.659000
TransactionCode object
Date object
Time object
我希望遍歷“時間”列以了解每天出現“PAY”值的次數。我需要這個來使用 Matplotlib 構建每小時投票率圖。
uj5u.com熱心網友回復:
考慮以下資料框:
TransactionCode Date Time
1 PAY 2021-12-09 10:23:29.242000
2 PAY 2021-12-09 10:23:02.978000
3 PAY 2021-12-09 10:22:48.659000
4 ERR 2021-12-09 11:32:48.659000
5 PAY 2021-12-09 11:45:12.659000
你可以這樣做:
df['Hour'] = [time.hour for time in df['Time']]
df[df['TransactionCode'] == 'PAY'][['TransactionCode','Hour']].groupby('Hour').count().plot(kind='bar');

uj5u.com熱心網友回復:
您可以轉換為日期時間、set_index日期和resample小時,最后繪制:
df2 = (
df.assign(Date=pd.to_datetime(df['Date']))
.set_index('Date')
.loc[lambda d: d['TransactionCode'].eq('PAY')]
.resample('1H').count()
)
輸出:
TransactionCode
Date
2021-12-09 10:00:00 01:00 3
2021-12-09 11:00:00 01:00 2
陰謀:
df2.plot.bar()

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/426991.html
標籤:Python 熊猫 数据框 matplotlib 阴谋
