Python:读取每个观察可变行数的数据文件

时间:2016-08-09 20:33:39

标签: python data-files

我必须处理每个观察包含多行的数据集。每次观察的行数可以变化。该文件的结构使得信息不会重复。

该文件包含一个段ID,它将输出与特定信息相关联。以下是文件布局的示例。

细分ID定义

SegementID  Table                   Number of Occurrences
1           Customer Information    1
3           Items bought            1-10

表格布局 - 客户信息

ID  Name

表格布局 - 购买的物品

Item    Cost    Date

以下是输出文件外观的示例。

SegementID          
1   100     matt
3   ball    3.25    1/16/2016
3   cat     5.55    1/17/2016
1   200     lucy
3   doll    500.35  2/1/2016
3   ball    3.25    2/2/2016
3   dog     5.55    2/3/2016

请注意,段ID = 1与客户信息有关。然后,段ID 3显示客户已完成的所有交易。

我想在每个交易行上建立具有客户ID的结构。这样做的最佳方式是什么?

ID  Item    Cost    Date
100 ball    3.25    1/16/2016
100 cat     5.55    1/17/2016
200 doll    500.35  2/1/2016
200 cat     3.25    2/2/2016
200 dog     5.55    2/3/2016

1 个答案:

答案 0 :(得分:1)

以下是使用Pandas

的快速解决方案
import pandas as pd

df = pd.DataFrame()

with open("file.txt", "r") as f:
    f.next()
    for row,line in enumerate(f):
        info =  line.split()
        if info[0] == '1':
            client = info[1]
        else:
            df[row] = [client, info[1],info[2],info[3]]   

df = df.transpose()
df.columns = ["ID","Item","Cost","Date"]