[英]Create boolean columns in DataFrame pandas for date and year
让它成为以下 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 以避免不兼容。
您可以尝试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
将get_dummies
与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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.