首页 > 解决方案 > 每次读取 csv 中的第一列并更改 python 中的其他列

问题描述

我有一个包含 300 多列和 5k 行的 csv 文件。我要做的是在第一次迭代中读取第一列和第二列,然后在第二次迭代中读取第一和第三列,然后在第三次迭代中读取第一和第四列,依此类推。另外,我需要包含标题。我的 csv 文件示例如下所示:

 Time,Household 1,Household 2, .....  
 Timestamp,Vehicle 1,Vehicle 2,......  
 01-01-2010 00:00:00,0,0,....  
 01-01-2010 00:00:10,0,0,....  
 .                  ,.,....  
 .                  ,.,....  
 .                  ,.,....  
 .                  ,.,....  

这是我写的代码:

import pandas as pd
import numpy as np


household = pd.read_csv(r'/home/deras/Desktop/PEV-Profiles-new.csv',index_col = False,dtype='unicode',delimiter = ',')
#print (household)
i = 1
k = 0
j = 0
for row in household:
    d1 = household.iloc[:,k]
    d2 = household.iloc[:,i]
    d3 = d1 + d2
    i = i + 1
    k = k + 1
    Path = '/home/deras/Desktop/csv_parsing_new/Load_Profile'+str(j)+'.csv'
    d3.to_csv(Path)
    j = j + 1
    if i == 348:# and k == 1:
        break

任何帮助将不胜感激。

标签: pythonpandascsv

解决方案


如果我正确理解您的问题,您有一个包含 N 列的 CSV 文件,并且您想将其分割成 N-1 个包含 (1,2)、(1,3)、(1,4)、.. ..,(1,N)。如果是这样,应该这样做:

col_first = household.columns[0]

for i in range(1, household.shape[1]):
    col_i = household.columns[i]
    household.loc[:, [col_first, col_i]].to_csv(f'{i}.csv', index=False)

推荐阅读