将df列中的每8个值复制到新datafram中的一行

2024-06-17 08:53:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的数据帧,想将一组8个值复制到一个新的数据帧,但组中的每个值都必须位于一个新列中。然后,接下来的8个值应复制到新的数据帧

到目前为止,我的代码没有获得新数据帧第一行的passt:

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

我真的被困在这里了

我希望有人能帮助我


Tags: 数据dfnewindexoldval1jjkk
1条回答
网友
1楼 · 发布于 2024-06-17 08:53:55

使用^{}^{}重命名列:

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

相关问题 更多 >