【问题标题】:separate csv columns while a row of cell have different number of elements单独的csv列,而一行单元格具有不同数量的元素
【发布时间】:2021-04-12 13:11:34
【问题描述】:

我有一个如下所示的 csv 文件:

我想把它转换成这样的:

问题是每列的第一行有 4 个元素,而其余行有 7 个元素。我想让它们保持一致。我也想保持原来的列分离。

有人对如何实现这一点有任何想法吗?

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    假设您的df 是这样的:

                              0                         1                         2
    0    read pass 1000K times.    read pass 2000K times.    read pass 3000K times.
    1  MAX BER WL layer 0 == 11  MAX BER WL layer 0 == 18  MAX BER WL layer 0 == 18
    2   MAX BER WL layer 1 == 5  MAX BER WL layer 1 == 15  MAX BER WL layer 0 == 15
    

    您可以在每一列上使用.str.split(expand=True),并在结果上使用concat()

    out = pd.concat([df[column].str.split(expand=True) for column in df.columns], axis=1)
    
    0 1 2 3 4 5 6 0 1 2 ... 4 5 6 0 1 2 3 4 5 6
    0 read pass 1000K times. None None None read pass 2000K ... None None None read pass 3000K times. None None None
    1 MAX BER WL layer 0 == 11 MAX BER WL ... 0 == 18 MAX BER WL layer 0 == 18
    2 MAX BER WL layer 1 == 5 MAX BER WL ... 1 == 15 MAX BER WL layer 0 == 15

    示例df供参考:

    csv = '''
    read pass 1000K times.,read pass 2000K times.,read pass 3000K times.
    MAX BER WL layer 0 == 11,MAX BER WL layer 0 == 18,MAX BER WL layer 0 == 18
    MAX BER WL layer 1 == 5,MAX BER WL layer 1 == 15,MAX BER WL layer 0 == 15
    '''
    df = pd.read_csv(StringIO(csv), header=None)
    

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 2011-05-12
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 2022-10-06
      相关资源
      最近更新 更多