基于行和列python在多个CSV中汇总数据

时间:2017-02-15 17:15:37

标签: python-2.7 pandas

我有多个csv,我想根据行键和列键添加这两个csv中的数据 例如:

input1.csv
account,param1,param2,param3
D1,2,-1,0
D2,3,2,-2
D4,12,-1,-2
D3,1,1,0

input2.csv
account,param1,param2,param3
D4,22,-1,0
D6,3,2,-2
D1,-2,-1,-2
D3,1,1,0

output.csv
account,param1,param2,param3
D1,0,-2,0
D2,3,2,-2
D3,2,2,0
D4,34,-2,-2
D6,3,2,-2

因此,在output.csv中,我需要在csv和csv中都存在所有帐户,对于普通帐户,需要添加param值。

注意:帐户不按顺序排列

1 个答案:

答案 0 :(得分:0)

这是使用In [824]: df = pd.concat((pd.read_csv(f) for f in ['input1.csv', 'input2.csv']), ignore_index=True) In [825]: df Out[825]: account param1 param2 param3 0 D1 2 -1 0 1 D2 3 2 -2 2 D4 12 -1 -2 3 D3 1 1 0 4 D4 22 -1 0 5 D6 3 2 -2 6 D1 -2 -1 -2 7 D3 1 1 0 In [826]: df.groupby('account', as_index=False).sum() Out[826]: account param1 param2 param3 0 D1 0 -2 -2 1 D2 3 2 -2 2 D3 2 2 0 3 D4 34 -2 -2 4 D6 3 2 -2 In [827]: df.groupby('account', as_index=False).sum().to_csv('output.csv', index=False)

的单向方式
const dropdownObjects = [
  { column: 'value1', dropdown: '#id1' },
  { column: 'value2', dropdown: '#id2' },
  { column: 'value3', dropdown: '#id3' },
  // ...
];

for (var i = 0; i < dropdownObjects.length; i++) {
  populateDropdowns(dropdownObjects[i]);
}