首页 > 解决方案 > 有没有办法在 for 循环中连接数据帧

问题描述

我试图为每列循环一个函数以对其进行转换并将其连接回主数据框。但我只得到最后一个循环输出。

import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))

columns = ['A','B']

def run_all(x):
    x = x*2
    return x

df_summary = pd.DataFrame()

for column in columns:
    df0 = df[column]
    df__ = []
    for each_row in df0:
        df__.append(run_all(each_row))
    df_summary  = pd.concat([df, pd.DataFrame({'Summary_' + column: df__})], axis=1)

df_final = pd.DataFrame(df_summary)

print(df_final)

标签: pythonpandasdataframeconcatenation

解决方案


您想尝试以下方法吗:-

df_summary = df.copy()

for column in columns:
    df0 = df[column]
    df__ = []
    for each_row in df0:
        df__.append(run_all(each_row))
    df_summary['Summary_{}'.format(column)] = pd.DataFrame({'Summary_' + column: df__}).values

print(df_summary)

输出:

在此处输入图像描述


推荐阅读