我正在创建一个函数,其参数是数据框。问题是该函数使用的数据帧具有不同的长度,我需要我的数据帧具有特定的长度才能使我的代码正常工作。
具体来说,我需要我的数据框有 84 列,有时我的列数较少(超过需要的 84 列不是问题)。因此,为了让我的代码正常工作,我需要添加用 0 填充的列。
我的列名称是从 0 开始的数字。我想出了以下代码:
df.insert(len(df.columns), len(df.columns)-1, 0)
但我不知道如何将其放入循环中以获取始终有 84 列的数据框?
谢谢。
最佳答案
假设 DF 有 5 列:
A B C D F
0 92 58 84 4 63
1 44 28 58 97 27
2 51 75 76 16 39
3 42 32 85 98 32
4 98 90 65 78 85
5 32 16 31 5 95
6 88 69 23 37 12
7 52 13 57 57 90
8 60 49 5 15 14
9 43 40 1 76 17
[10 rows x 5 columns]
您可以检查数据框中的列数,并创建填充 0 的新列,直到达到 84 列:
new_cols = [f"column_new_{number}" for number in range(84 - len(df.columns))]
pd.concat([df, pd.DataFrame(columns = new_cols)]).fillna(0)
这给你:
Out[164]:
A B C ... column_new_76 column_new_77 column_new_78
0 92.0 58.0 84.0 ... 0 0 0
1 44.0 28.0 58.0 ... 0 0 0
2 51.0 75.0 76.0 ... 0 0 0
3 42.0 32.0 85.0 ... 0 0 0
4 98.0 90.0 65.0 ... 0 0 0
5 32.0 16.0 31.0 ... 0 0 0
6 88.0 69.0 23.0 ... 0 0 0
7 52.0 13.0 57.0 ... 0 0 0
8 60.0 49.0 5.0 ... 0 0 0
9 43.0 40.0 1.0 ... 0 0 0
[10 rows x 84 columns]
您可以决定列的前缀
,我使用“column_new_”只是为了演示目的。
关于python - 将多列附加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69617149/