【发布时间】:2021-11-01 15:21:34
【问题描述】:
我有3个数据框列表,我想根据它是否属于某个数据框列表为每列添加一个后缀。它全部按顺序排列,因此后缀列表中的第一项应附加到数据框的第一个列表中的数据框列等。我在这里尝试,但它将后缀列表中的每个项目添加到每一列。
在预期的输出中
- cat_a 中 dfs 中的所有列都需要附加 group1
- cat_b 中 dfs 中的所有列都需要附加 group2
- cat_c 中 dfs 中的所有列都需要附加 group3
数据和代码在这里
df1, df2, df3, df4 = (pd.DataFrame(np.random.randint(0,10,size=(10, 2)), columns=('a', 'b')),
pd.DataFrame(np.random.randint(0,10,size=(10, 2)), columns=('c', 'd')),
pd.DataFrame(np.random.randint(0,10,size=(10, 2)), columns=('e', 'f')),
pd.DataFrame(np.random.randint(0,10,size=(10, 2)), columns=('g', 'h')))
cat_a = [df1, df2]
cat_b = [df3, df4, df2]
cat_c = [df1]
suffix =['group1', 'group2', 'group3']
dfs = [cat_a, cat_b, cat_c]
for x, y in enumerate(dfs):
for i in y:
suff=suffix
i.columns = i.columns + '_' + suff[x]
感谢观看!
【问题讨论】:
-
df1和df2映射到多个组是故意的吗?即他们应该有像这样的列名:col_group1_group2? -
这是故意的。我知道这里并没有什么意义,但是有些列(和事实上的数据框)具有相同的名称。它并不理想,它只是以前存储方式的产物