我的数据框很大,想将一组8个值复制到一个新的数据框中,但是该组的每个值都必须在新列中。然后,接下来的8个值应复制到新的数据框中。
到目前为止,我的代码还没有通过新数据框的第一行:
kk = 1
jj = 0
while(kk <= 8):
df_new["Col" + str(kk)] = df_old.loc[jj, "ColumnName"]
kk += 1
jj += 1
输出:
Df_old Df_new
Index ColumnName Index Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8
0 val1 0 val1 val2 val3 val4 val5 val6 val7 val8
1 val2
2 val3
3 val4
4 val5
5 val6
6 val7
7 val8
... ...
n valn
我期望什么:
Df_old Df_new
Index ColumnName Index Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8
0 val1 0 val1 val2 val3 val4 val5 val6 val7 val8
1 val2 1 val2 val3 val4 val5 val6 val7 val8 val9
2 val3 2 val3 val4 val5 val6 val7 val8 val9 val10
3 val4
4 val5
5 val6
6 val7
7 val8
我真的被困在这里。
我希望有人能帮助我。
答案 0 :(得分:0)
使用transpose
和add_prefix
重命名您的列:
df = df.T.add_prefix('Col').reset_index(drop=True)
print(df)
Col0 Col1 Col2 Col3 Col4 Col5 Col6 Col7
0 val1 val2 val3 val4 val5 val6 val7 val8
或者,如果您想在第一列本身以1
开头:
df = df.T.reset_index(drop=True)
df.columns = ['Col'+str(x+1) for x in df.columns]
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8
0 val1 val2 val3 val4 val5 val6 val7 val8