【问题标题】:Parse columns to reshape dataframe解析列以重塑数据框
【发布时间】:2019-09-10 21:27:53
【问题描述】:

我有一个 csv,我将它作为带有 pandas 的数据框导入。列如下:

Step1:A Step1:B Step1:C Step1:D Step2:A Step2:B Step2:D Step3:B Step3:D Step3:E
0         1        2        3       4      5       6       7       8     9

步骤和参数用':'分隔。我想重塑数据框看起来像这样:

    Step1   Step2   Step3
A   0          4    nan
B   1          5      7
C   2        nan    nan
D   3          6      8
E   nan      nan      9

现在,如果我想保持列顺序,这样我就有这种情况:

Step2:A  Step2:B    Step2:C  Step2:D    Step1:A   Step1:B   Step1:D  AStep3:B   AStep3:D    AStep3:E
0        1          2        3          4         5         6        7          8           9

步骤和参数用':'分隔。我想重塑数据框看起来像这样:

    Step2   Step1   AStep3
A   0          4    nan
B   1          5      7
C   2        nan    nan
D   3          6      8
E   nan      nan      9

【问题讨论】:

    标签: python regex csv dataframe reshape


    【解决方案1】:

    试试read_csv 和delim_whitespace:

    df = pd.read_csv('file.csv', delim_whitespace=True)
    df.columns = df.columns.str.split(':', expand=True)
    df.stack().reset_index(level=0, drop=True)
    

    输出:

       Step1  Step2  Step3
    A    0.0    4.0    NaN
    B    1.0    5.0    7.0
    C    2.0    NaN    NaN
    D    3.0    6.0    8.0
    E    NaN    NaN    9.0
    

    【讨论】:

    • 这可行,但:A) 不保持列顺序。 B) 第一行 df=pd.read_csv('file.csv')
    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2013-01-27
    • 2015-10-07
    相关资源
    最近更新 更多