讓它成為以下 Python Panda DataFrame:
| 代碼 | 日期 | 顏色 | 柜臺 |
|---|---|---|---|
| TTT | 2021-02-01 00:30:11 | 藍色的 | 2 |
| AVC | 2022-02-01 10:00:01 | 紅色的 | 12 |
| 生物安全資訊交易所所 | 2022-02-02 22:00:01 | 紅色的 | 12 |
| 莢 | 2022-03-01 01:00:03 | 藍色的 | 1 |
| UDY | 2022-05-01 09:02:01 | 紅色的 | 3 |
| 優德 | 2022-12-01 09:02:01 | 綠色 | 0 |
我需要按年和月創建一列,其中包括該行是否屬于(布爾)列中指示的特定月份。生成的 DataFrame 的示例如下:
| 代碼 | 日期 | 顏色 | 柜臺 | 2021-02 | 2022-02 | 2022-03 | 2022-05 | 2022-12 |
|---|---|---|---|---|---|---|---|---|
| TTT | 2021-02-01 00:30:11 | 藍色的 | 2 | 真的 | 錯誤的 | 錯誤的 | 錯誤的 | 錯誤的 |
| AVC | 2022-02-01 10:00:01 | 紅色的 | 12 | 錯誤的 | 真的 | 錯誤的 | 錯誤的 | 錯誤的 |
| 生物安全資訊交易所所 | 2022-02-02 22:00:01 | 紅色的 | 12 | 錯誤的 | 真的 | 錯誤的 | 錯誤的 | 錯誤的 |
| 莢 | 2022-03-01 01:00:03 | 藍色的 | 1 | 錯誤的 | 錯誤的 | 真的 | 錯誤的 | 錯誤的 |
| UDY | 2022-05-01 09:02:01 | 紅色的 | 3 | 錯誤的 | 錯誤的 | 錯誤的 | 真的 | 錯誤的 |
| 優德 | 2022-12-01 09:02:01 | 綠色 | 0 | 錯誤的 | 錯誤的 | 錯誤的 | 錯誤的 | 真的 |
為了解決這個問題,只使用了date列中的資訊,但我包含了完整的 DataFrame 以避免不兼容。
uj5u.com熱心網友回復:
你可以df.to_period試試str.get_dummies
out = df.join(pd.to_datetime(df['date']).dt.to_period("M")
.astype(str).str.get_dummies()
.astype(bool))
print(out)
code date color counter 2021-02 2022-02 2022-03 2022-05 2022-12
0 TTT 2021-02-01 00:30:11 blue 2 True False False False False
1 AVC 2022-02-01 10:00:01 red 12 False True False False False
2 BCH 2022-02-02 22:00:01 red 12 False True False False False
3 POD 2022-03-01 01:00:03 blue 1 False False True False False
4 UDY 2022-05-01 09:02:01 red 3 False False False True False
5 YUD 2022-12-01 09:02:01 green 0 False False False False True
uj5u.com熱心網友回復:
使用get_dummieswith表示布林值Series.dt.strftime的YYYY-MM格式和引數:dtype
df = df.join(pd.get_dummies(df['date'].dt.strftime('%Y-%m'), dtype=bool))
print (df)
code date color counter 2021-02 2022-02 2022-03 \
0 TTT 2021-02-01 00:30:11 blue 2 True False False
1 AVC 2022-02-01 10:00:01 red 12 False True False
2 BCH 2022-02-02 22:00:01 red 12 False True False
3 POD 2022-03-01 01:00:03 blue 1 False False True
4 UDY 2022-05-01 09:02:01 red 3 False False False
5 YUD 2022-12-01 09:02:01 green 0 False False False
2022-05 2022-12
0 False False
1 False False
2 False False
3 False False
4 True False
5 False True
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/487191.html
上一篇:如何在python中將日期時間列名重命名為字串格式?
下一篇:如何將資料框字串轉換為日期時間
