将Pandas Dataframe 转换为特定布局

myzjeezk  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(121)

我正在使用一个以特定格式获取数据的软件。为了让这个软件工作,我需要将一个 Dataframe (如第一个屏幕截图)转换为另一种格式(如第二个屏幕截图)。有什么想法可以做到这一点吗?提前感谢!Original data format
Converted data format

ngynwnxp

ngynwnxp1#

给定一个简单的 Dataframe :

0    1  2    3
    0  1  2.0  4  1.0
    1  2  3.0  r  NaN
    2  3  NaN  6  NaN

使用以下内容创建了单列 Dataframe :

import pandas as pd
    import numpy as np
    
    df = pd.read_csv('test.csv',header=None,sep=";")
    joined = pd.concat([df[column].dropna() for column in df.columns], ignore_index=True).to_frame()

虽然我真的不理解数据集中重复数据的必要性,但对于下一步,我将迭代初始 Dataframe 列以获得索引,追加一个空列,并通过位置赋值替换所需的值。

initial = 0
    for column in df.columns:
        cols = len(joined.columns)
        joined[cols] = np.nan
        bit = df[column].dropna()
        final = initial + len(bit)
        joined.iloc[initial:final, column+1] = bit
        initial = final

产生的joined Dataframe :

0    1    2    3    4
    0    1  1.0  NaN  NaN  NaN
    1    2  2.0  NaN  NaN  NaN
    2    3  3.0  NaN  NaN  NaN
    3  2.0  NaN  2.0  NaN  NaN
    4  3.0  NaN  3.0  NaN  NaN
    5    4  NaN  NaN    4  NaN
    6    r  NaN  NaN    r  NaN
    7    6  NaN  NaN    6  NaN
    8  1.0  NaN  NaN  NaN  1.0

相关问题