首页 > 解决方案 > Python Array To Csv,按字段值对 CSV 文件中的数据进行分组并保存 csv

问题描述

我有一个 csv 文件

col1      col2
a          1     
a          2        
a          3    
b          3      
b          6    
b          1  

我用这个代码

import csv

result = {}

with open('data.csv', 'rb') as csvfile:
    csvreader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in csvreader:
        if row[0] in result:
            result[row[0]].append(row[1])
        else:
            result[row[0]] = [row[1]]

print result

output 
result:{
    'a': ['1', '2', '3'], 
    'b': ['3', '6', '1'] 
}

现在我想将此结果保存到 csv 文件(我想使用此方法) result.csv

ab
1 3
2 6
3 1

解决了

df_zor = pd.read_csv('5_gecici_.csv', encoding = "windows-1250", sep=';')
df = df_zor.groupby("gorevli").agg(lambda x: x.unique().tolist()).T
df.apply(lambda x: np.pad(x.iloc[0], (0, df.apply(lambda x: len(x.iloc[0]), axis=0).max() - len(x.iloc[0])), 'constant', constant_values=np.nan), axis=0)[df_zor.gorevli.unique()].to_excel('5_gorevli_bazinda_incelemede_dosya_listesi.xlsx', index=False)

标签: pythoncsv

解决方案


您可以使用以下代码:

to_csv = []

#to get 'a' and 'b' in first row
to_csv.append(list(result.keys()))

# To get 'a' and 'b' values
for a,b in  zip(*list(result.values())):
    to_csv.append([a,b])

# Writing result.csv
with open('result.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(to_csv)

中的数据result.csv是:

a,b
1,3
2,6
3,1

推荐阅读