gpt4 book ai didi

python - 在 Pandas 中选择特定月份的行

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:42 24 4
gpt4 key购买 nike

我有一个包含 12 小时数据的数据框,时间超过 10 年。所有数据都按日期存储。我想提取包含特定月份数据的列(请注意,月份不是标准的 1、2、3 格式)。我拥有的“日期”列的行如下所示:

01-May-07
02-May-07
.
.
.
31-Oct-17

如何只选择只包含五月、六月等数据的列

最初我认为我可以使用 df[df['DATE'].str.contains('May')] 进行提取。但它没有按预期工作,导致输出作为输入。

编辑 1

DATE    TIME    MOONPH  SPEED   GUST    CLOUD AMOUNT    DRY WET DEW RH
01-May-07 230 NM7 6 0 4 27.4 25.4 25.4 86
01-May-07 330 NM7 4 0 4 27.4 25.4 25.4 86
01-May-07 430 NM7 3 0 4 27.4 25.4 25.4 86
01-May-07 530 NM7 2 0 4 27.4 25.4 25.4 89
01-May-07 630 NM7 3 0 5 27.4 26 25.4 85
01-May-07 700 NM7 0 0 4 27.8 26 25.4 81
01-May-07 730 NM7 0 0 4 27.8 26 25.4 81
01-May-07 800 NM7 2 0 4 27.8 26 25.4 81
01-May-07 830 NM7 5 0 4 29.2 26 24.6 76
01-May-07 900 NM7 5 0 4 29.2 26 24.6 76
01-May-07 930 NM7 5 0 2 29.8 26 24.6 76
01-May-07 1000 NM7 5 0 4 30.8 26 24.6 76
01-May-07 1030 NM7 5 0 4 30.8 26 24.6 76
01-May-07 1100 NM7 6 0 4 31.4 26 24.6 68
.
.
.
01-May-17 1630 NM7 8 0 5 32.6 27.4 25.6 68
01-May-17 1930 NM7 8 0 5 32 27.4 25.6 69
01-May-17 430 NM7 0 0 5 27.2 25 24 83
01-May-17 30 NM7 0 0 5 29.6 27.2 26.2 82
01-May-17 530 NM7 0 0 5 26.6 24.4 23.4 83
01-May-17 130 NM7 0 0 5 28 25.6 24.6 82
01-May-17 630 NM7 0 0 5 26.8 24.4 23.3 81
01-May-17 730 NM7 0 0 5 27.2 24.4 23.4 80
01-May-17 330 NM7 0 0 5 27.2 25 24 83
01-May-17 1230 NM7 10 0 5 32.8 28.2 25.2 64
01-May-17 2330 NM7 4 0 4 30 26.4 24.9 75
01-May-17 2230 NM7 5 0 4 30 26.8 25.5 77
01-May-17 2130 NM7 4 0 4 30 26.8 25.5 77
01-May-17 830 NM7 2 0 5 27.2 24.4 23.4 78
01-May-17 930 NM7 3 0 5 31.2 27.2 25.6 72
01-May-17 1830 NM7 8 0 5 32 27.4 25.6 69
01-May-17 1130 NM7 6 0 5 32.8 28.2 25.2 64
01-May-17 2030 NM7 6 0 4 32 26.8 25.4 76
01-May-17 1330 NM7 10 0 5 33 27.6 25.4 64
01-May-17 1430 NM7 10 0 5 33 27.6 25.2 65

最佳答案

我认为需要转换 to_datetime然后与 month 进行比较或 strftime%B 表示 month names :

df = pd.DataFrame({'DATE': ['01-May-07', '02-May-07', '31-Oct-17']})
print (df)
DATE
0 01-May-07
1 02-May-07
2 31-Oct-17

df = df[pd.to_datetime(df['DATE']).dt.month == 5]
df = df[pd.to_datetime(df['DATE']).dt.strftime('%B') == 'May']

print (df)
DATE
0 01-May-07
1 02-May-07

如果以后需要处理日期时间:

df['DATE'] = pd.to_datetime(df['DATE'])
df = df[df['DATE'].dt.month == 5]
#df = df[df['DATE'].dt.strftime('%B') == 'May']
print (df)
DATE
0 2007-05-01
1 2007-05-02

编辑:

如果不需要使用datetimes,对我来说你的数据你的方法有效:

df = df[df['DATE'].str.contains('May')]

关于python - 在 Pandas 中选择特定月份的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50265938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com