【问题标题】:read file into data frame with grouping variable使用分组变量将文件读入数据框
【发布时间】:2022-10-14 17:12:07
【问题描述】:
file.txt

///// A
13 32 12 13
4 22 34 42    
///// B
3 1 34 11
0 NaN 21 1
44 32 33 32  
///// C
5 32 11 21
43 23 NaN 3

我正在尝试读取此文件,以便根据///// 之后的字母对值进行分组。期望的输出:

0   1   2   3   Group
13  32  12  13  A
4   22  34  42  A
3   1   34  11  B
0   NaN 21  1   B
44  32  33  32  B
5   32  11  21  C
43  23  NaN 3   C

我在pd.read_table 中尝试了大多数选项,但我不知道如何处理分组,因为如果我忽略///// 行df = pd.read_table('file.txt', sep=' ', header=None, comment='/'),我只能设法读取文件

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    尝试这个:

    import numpy as np
    import pandas as pd
    
    df_list = []
    
    
    def converter(x):
        try:
            return int(x)
        except:
            return np.nan
    
    
    with open('file.txt', 'r') as f:
        for line in f:
            line = line.strip()
            if line.startswith('/////'):
                group = line[-1]
            else:
                values = map(converter, line.split())
                df_list.append([*values, group])
    
    df = pd.DataFrame(df_list, columns=[*[i for i in range(4)], 'Group'])
    

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 2023-01-23
      相关资源
      最近更新 更多