我有 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]
謝謝參觀!
uj5u.com熱心網友回復:
布賴恩約瑟夫的回答很棒*,但我想指出您非常接近,您只是沒有正確重命名列。你的最后一行應該是這樣的:
i.columns = [col '_' suff[x] for col in i.columns]
而不是這個:
i.columns = i.columns '_' suff[x]
uj5u.com熱心網友回復:
假設您想為某些資料幀設定多個后綴,我認為這就是您想要的?:
suffix_mapper = {
'group1': [df1, df2],
'group2': [df3, df4, df2],
'group3': [df1]
}
for suffix, dfs in suffix_mapper.items():
for df in dfs:
df.columns = [f"{col}_{suffix}" for col in df.columns]
uj5u.com熱心網友回復:
我認為問題是因為您沒有復制資料幀,所以每個 cat 資料幀都多次參考 df 資料幀。
嘗試:
cat_a = [df1.copy(), df2.copy()]
cat_b = [df3.copy(), df4.copy(), df2.copy()]
cat_c = [df1.copy()]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/344015.html
