如何连接 DataFrame 中的列名?
import pandas as pd
import numpy as np
n_rows = 10
n_cols = 4
df_1 = pd.DataFrame(np.random.randint(0, 100, size=(n_rows, n_cols)), columns=['col%d' % i for i in range(n_cols)])
df_2 = pd.DataFrame(np.random.randint(0, 100, size=(n_rows, n_cols)), columns=['col%d' % i for i in range(n_cols)])
def pir1(df_1, df_2):
pidx = np.indices((df_1.shape[1], df_2.shape[1])).reshape(2, -1)
lcol = pd.MultiIndex.from_product([df_1.columns, df_2.columns], names=[df_1.columns.name, df_2.columns.name])
return pd.DataFrame(df_1.values[:, pidx[0]] + df_2.values[:, pidx[1]], columns=lcol)
print(pir1(df_1, df_2))
col0 col1 ... col2 col3
col0 col1 col2 col3 col0 col1 col2 ... col1 col2 col3 col0 col1 col2 col3
0 99 83 64 23 139 123 104 ... 157 138 97 134 118 99 58
1 92 72 54 109 68 48 30 ... 91 73 128 151 131 113 168
2 92 73 92 91 125 106 125 ... 65 84 83 72 53 72 71
3 110 121 133 167 99 110 122 ... 129 141 175 75 86 98 132
[4 rows x 16 columns]
如何使列名加入?输出应该是这样的:
col0_col0 col0_col1 col0_col2 ... col3_col1 col3_col2 col3_col3
0 99 83 64 ... 118 99 58
1 92 72 54 ... 131 113 168
2 92 73 92 ... 53 72 71
3 110 121 133 ... 86 98 132
在您的示例中,您可以通过生成器设置列的名称: