将df列中的每8个值复制到新数据框中的一行

时间:2019-06-11 12:08:10

标签: python pandas dataframe

我的数据框很大,想将一组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

我真的被困在这里。

我希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

使用transposeadd_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