连接用循环生成的 Pandas DataFrames

Ann*_*lix 10 python loops append dataframe pandas

我正在创建一个名为data_day的新DataFrame,其中包含新功能,用于从前一个 DataFrame df的日期时间戳推断出来的每一天

我的新数据帧data_day是 30 个独立的,我需要在 unic 数据帧 (final_data_day) 的末尾连接/附加它们。

每天的 for 循环定义如下:

num_days=len(list_day)

#list_day= random.sample(list_day,num_days_to_simulate)
data_frame = pd.DataFrame()

for i, day in enumerate(list_day):

    print('*** ',day,' ***')

    data_day=df[df.day==day]
    .....................
    final_data_day = pd.concat()
Run Code Online (Sandbox Code Playgroud)

希望我很清楚。我的基本上是在非平凡的 for 循环中生成的数据帧的追加/串联问题

Dav*_*nck 13

Pandas concat 需要一个数据框列表。如果您可以使用循环函数生成数据帧列表,完成后您可以将列表连接在一起:

data_day_list = []
for i, day in enumerate(list_day):
  data_day = df[df.day==day]
  data_day_list.append(data_day)
final_data_day = pd.concat(data_day_list)
Run Code Online (Sandbox Code Playgroud)


jpp*_*jpp 6

耗尽生成器比附加到列表更优雅(如果不是更有效)。例如:

def yielder(df, list_day):
    for i, day in enumerate(list_day):
        yield df[df['day'] == day]

final_data_day = pd.concat(list(yielder(df, list_day))
Run Code Online (Sandbox Code Playgroud)