gpt4 book ai didi

python - 用循环填充空数据框

转载 作者:行者123 更新时间:2023-12-01 07:34:28 25 4
gpt4 key购买 nike

我有以下数据框

print(df.head(5))

date places_occupees
0 2017-01-01 00:00:00.0000000 238
1 2017-01-01 00:01:00.0000000 238
2 2017-01-01 00:02:00.0000000 238
3 2017-01-01 00:03:00.0000000 238
4 2017-01-01 00:04:00.0000000 238
5 2017-01-01 00:05:00.0000000 238

(请注意日期列类型为字符串)

我有一个字符串列表,将用于对数据框中的数据进行排序。

print(list_holidays)

['2017-01-01', '2017-05-01', '2017-05-08', '2017-07-14', '2017-11-11', '2017-04-17', '2017-06-05', '2017-05-25', '2017-08-15', '2017-11-01', '2017-12-25']

然后我创建一个具有相同 2 列的新空数据框。我将使用循环填充数据:

new_df = pd.DataFrame(columns=['date', 'places_occupees'])

这是我使用的但返回一个空数据框

for i in list_holidays:
filter = df[df['date'].str.contains(i)]
new_df['date'].append(filter.date)
new_df['places_occupes'].append(filer.places_occupees)

我想做的是用排序后获得的日期填充 new_df 'date' 列,并用排序后获得的值填充 new_df 'places_ocpees' 列,这些值应该看起来像初始数据帧,但在应用过滤。

最佳答案

您可以将过滤结果(正确的)保存在列表中,然后使用pd.concat获取新的df。

试试这个:

filtered = []
for i in list_holidays:
filter = df[df['date'].str.contains(i)]
filtered.append(filter)

new_df = pd.concat(filtered)

print(new_df)

或者使用简单的列表理解:

new_df = pd.concat([df[df['date'].str.contains(i)] for i in list_holidays])

print(new_df)

关于python - 用循环填充空数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054526/

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