【问题标题】:Python: Create new column and row base on different column in CSV filePython:根据CSV文件中的不同列创建新列和行
【发布时间】:2020-02-16 21:37:45
【问题描述】:

我有一个大型数据集,我想根据列 starttimeendtime 创建新的列和行。示例:starttime = 5endtime = 7。我想要一个名为Hour 的新列,其值为[5,7)

我的数据:

Id      name    starttime   endtime
1000    a       5           7
1001    b       13          16
1002    c       23          2

我想要的结果:

id      name    hour
1000    a       5
1000    a       6
1001    b       13
1001    b       14
1001    b       15
1002    c       23
1002    c       24
1002    c       1

【问题讨论】:

    标签: python database pandas csv time


    【解决方案1】:

    遍历数据框可以解决:

    import pandas as pd
    
    df = pd.DataFrame([[1000, 'a', 5, 7], [1001, 'b', 13, 16], [1002, 'c', 23, 2]],
                      columns=['Id', 'name', 'starttime', 'endtime'])
    
    new_columns = ['id', 'name', 'hour']
    new_df = pd.DataFrame(columns=new_columns)
    
    for index, row in df.iterrows():
        start = int(row['starttime'])
        end = int(row['endtime'])
        if end > start:
            for counter in range(start, end):
                new_df = new_df.append(pd.DataFrame([[int(row['Id']), row['name'], int(counter)]],
                                                    columns=new_columns),
                                       ignore_index=True)
        else:
            for counter in range(start, 25):
                new_df = new_df.append(pd.DataFrame([[int(row['Id']), row['name'], int(counter)]],
                                                    columns=new_columns),
                                       ignore_index=True)
            for counter in range(1, end):
                new_df = new_df.append(pd.DataFrame([[int(row['Id']), row['name'], int(counter)]],
                                                    columns=new_columns),
                                       ignore_index=True)
    

    【讨论】:

      猜你喜欢
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 2020-09-12
      • 2022-01-23
      相关资源
      最近更新 更多