如何在新列 (pandas) 中合并值和列名?
How to unite values and column names in a new column (pandas)?
给定一个数据框 (df_original
),可能具有可变数量的行和列,我如何添加一列 "merges" 全部由字符分隔的列的值(例如 _
) ?
该列的名称也应由其他列名称的合并组成。示例代码中的输出应类似于 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]
使用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
给定一个数据框 (df_original
),可能具有可变数量的行和列,我如何添加一列 "merges" 全部由字符分隔的列的值(例如 _
) ?
该列的名称也应由其他列名称的合并组成。示例代码中的输出应类似于 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]
使用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