Python 在pandas中动态附加数据帧

Python 在pandas中动态附加数据帧,python,pandas,for-loop,concatenation,Python,Pandas,For Loop,Concatenation,我想从列表中加载文件,计算每个文件每行的平均值、中值和标准偏差,然后创建一个数据框,列出所有新计算的字段 我有以下代码: #list files to load file_names = ["file_1", "file_2", ...] #empty df data = pd.DataFrame() #for loop for filename in file_names: df = p

我想从列表中加载文件,计算每个文件每行的平均值、中值和标准偏差,然后创建一个数据框,列出所有新计算的字段

我有以下代码:

    #list files to load
    file_names = ["file_1", "file_2", ...]

    #empty df
    data = pd.DataFrame()

    #for loop
    for filename in file_names:
        df = pd.read_csv(filename, index_col=False, header=0)
        mean = df.mean(axis = 1)
        median = df.median(axis = 1)
        std = df.std(axis = 1)
        df = pd.concat([mean, median, std], axis = 1, ignore_index = 1)
    data = pd.concat(df, axis=1)
我得到一个错误:

TypeError:第一个参数必须是pandas对象的iterable,您传递了一个类型为“DataFrame”的对象。


在for循环中创建的各个dfs看起来正是我想要的,但我无法将它们全部连接在一起。

实际上,您每次通过循环都在覆盖
df

df_list = []

#for loop
for filename in file_names:
    df = pd.read_csv(filename, index_col=False, header=0)
    mean = df.mean(axis = 1)
    median = df.median(axis = 1)
    std = df.std(axis = 1)
    df = pd.concat([mean, median, std], axis = 1, ignore_index = 1)
    df_list.append(df)

data = pd.concat(df_list, axis=1)
而是收集列表中的数据帧,然后将该列表连接在一起

df_list = []

#for loop
for filename in file_names:
    df = pd.read_csv(filename, index_col=False, header=0)
    mean = df.mean(axis = 1)
    median = df.median(axis = 1)
    std = df.std(axis = 1)
    df = pd.concat([mean, median, std], axis = 1, ignore_index = 1)
    df_list.append(df)

data = pd.concat(df_list, axis=1)
换行

data = pd.concat(df, axis=1)


应该有用。。请务必让我知道,在任何情况下,请将最后3个平均值、中值和标准值添加到df“数据”中。不过上面的答案很好