gpt4 book ai didi

python - 有没有比 for 循环更快的方法来忽略日期并在日期时间系列中获取特定时间?

转载 作者:行者123 更新时间:2023-12-05 01:55:27 25 4
gpt4 key购买 nike

在 Mac 上使用 Python 3.9 和 Pycharm。我有一个包含两列的 .csv:日期/时间作为字符串和 float :

                       time  Value
0 2021-12-01 20:00:00 166
1 2021-12-01 19:59:00 165

时间的粒度是按分钟,大多数 天(跳过一些天)。我想做的是在特定时间为每个列出的日期取一个值,例如下午 5 点包含在数据中的每一天。这样我就不会每天有数百个值,而是:

                       time  Value
0 2021-12-02 17:00:00 166
1 2021-12-01 17:00:00 165
etc

我从阅读有关字符串/时间序列拆分的文章中想到的最好的方法是一个 for 循环,其中时间被拆分并且 17:00:00 的索引用于形成一个新列表

df = pd.read_csv('name')

datetime = df['time'].str.split()
temp_df = pd.DataFrame()
for _ in range(0, len(df)):
if datetime[_][1] == '17:00:00':
temp_df = temp_df.append(df.loc[[_]], ignore_index=True)
temp_df['time'] = pd.to_datetime(temp_df['time']) #make datetime for further computing
print(temp_df)

output:
...
time Value
175 2021-12-01 17:00:00 164
1083 2021-11-30 17:00:00 165
3313 2021-11-24 17:00:00 161

另一种方法是使用 df['Dates'] = pd.to_datetime(df['time']).dt.date 拆分它,但它似乎并没有减少比我当前的循环要求更高。

我找到了有关排序/选择日期/范围(包括 the Pandas documentation )的资源,但没有一个资源允许您在选择时间时保持但忽略日期?

最佳答案

试试这个:

df[df.time.str.contains('17:00:00')]

关于python - 有没有比 for 循环更快的方法来忽略日期并在日期时间系列中获取特定时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70209419/

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