合并 pandas.DataFrame 上的每两列

rkj*_*983 6 python pandas

我想每两列使用 pandas.DataFrame 。

例如,我有以下数据框:

pd.DataFrame([[10,"5%", 20, "10%"],[30,"15%", 40,"20%"]], columns=['error1', '(%)', 'error2', '(%)'])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然后,我想要得到的是以下数据框:

pd.DataFrame([["10 (5%)", "20 (10%)"],["30 (15%)", "40 (20%)"]], columns=['error1 (%)', 'error2 (%)'])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Mik*_*ler 3

对于这个数据框:

print(df)

   error1  (%)  error2  (%)
0      10   5%      20  10%
1      30  15%      40  20%
Run Code Online (Sandbox Code Playgroud)

这有效:

def make_func(offset=0):
    def func(x):
        return '{} ({})'.format(x[0 + offset], x[1 + offset])
    return func


df2 = pd.DataFrame()
for offset in range(0, df.shape[1], 2):
    df2['{} (%)'.format(df.columns[offset])] = df.apply(make_func(offset), axis=1)
Run Code Online (Sandbox Code Playgroud)

结果:

print(df2)

  error1 (%) error2 (%)
0    10 (5%)   20 (10%)
1   30 (15%)   40 (20%)
Run Code Online (Sandbox Code Playgroud)