如何在新列(pandas)中统一值和列名?

时间:2018-06-06 11:08:43

标签: python python-3.x pandas dataframe string-concatenation

如果数据框(df_original可能包含可变数量的行和列,我该如何添加一个“合并”列的所有列的列?字符(例如_)?

该列的名称也应该包含其他列名称的合并。输出应该在示例代码中看起来像df_final

示例代码:

import pandas as pd
d = {'col1': ["a", "b", "c"], 'col2': ["a", "b", "c"], 'col3': ["a", "b", "c"], 'col99': ["a", "b", "c"]}
df_original = pd.DataFrame(data=d)

d2 = {'col1': ["a", "b", "c"], 'col2': ["a", "b", "c"], 'col3': ["a", "b", "c"], 'col99': ["a", "b", "c"], 'col1_col2_col3_col99' : ["a_a_a_a", "b_b_b_b", "c_c_c_c"]}
df2 = pd.DataFrame(data=d2)
cols = ["col1","col2","col3","col99","col1_col2_col3_col99"]
df_final = df2[cols]

1 个答案:

答案 0 :(得分:3)

使用pd.DataFrame.apply

df['_'.join(df.columns)] = df.apply('_'.join, axis=1)

print(df)

  col1 col2 col3 col99 col1_col2_col3_col99
0    a    a    a     a              a_a_a_a
1    b    b    b     b              b_b_b_b
2    c    c    c     c              c_c_c_c