Python 连接使用循环生成的数据帧

Python 连接使用循环生成的数据帧,python,pandas,loops,dataframe,append,Python,Pandas,Loops,Dataframe,Append,我正在创建一个名为data\u day的新数据框,其中包含从上一个数据框df的日期时间戳推断出的每天的新功能 我的新数据帧数据日是30个独立的数据帧,我需要在unic数据帧(最终数据日)的末尾连接/附加这些数据帧 每天的for循环定义如下: num_days=len(list_day) #list_day= random.sample(list_day,num_days_to_simulate) data_frame = pd.DataFrame() for i, day in enumer

我正在创建一个名为data\u day的新数据框,其中包含从上一个数据框df的日期时间戳推断出的每天的新功能

我的新数据帧数据日是30个独立的数据帧,我需要在unic数据帧(最终数据日)的末尾连接/附加这些数据帧

每天的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()

希望我是清楚的。Mine基本上是一个附加/连接在非平凡for循环中生成的数据帧的问题,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)

追加或连接数据帧。数据帧s速度较慢。您可以在中间使用一个列表,然后在末尾创建最终的
pd.DataFrame
,例如:


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

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))

这还不清楚。既然你不知道怎么做,你怎么能指望我们不给我们举个例子就知道你在做什么?我的建议是阅读然后相应地编辑你的问题。您将大大增加获得高质量答案的几率。对不起!我正在看最小的,完整的..当他们已经解决了。我对这个平台上的提问是新手。我以后会考虑的。可爱@德瑞克的解决方案效果惊人。谢谢,所以muchI以前也做过“data_day=df[df.day==day]”,但发现速度要快得多:groups=df.groupby(“day”),然后再做data_day=groups.get_group(“day”),你写得很好。谢谢无法对Stackoverflow进行两次投票??
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))