我需要一些帮助,但不知道如何开始。
基本上,我有两个csv输入文件(来自2个不同的节点),并希望将这些值相加,结果将进入elasticsearch。
任何帮助是极大的赞赏...
CSV1
node link rate-in rate-out
node1 link1 10 20
node1 link2 30 50
node1 link3 40 60
CSV2
node link rate-in rate-out
node2 link1 20 10
node2 link2 50 70
node2 link3 80 40
结果->创建elasticsearch索引
node link rate-in rate-out
allnode link1 30 30
allnode link2 80 120
allnode link3 120 100
谢谢!
pandas 对读取和处理CSV文件具有良好的支持。
import pandas as pd
df = pd.concat([
pd.read_csv('csv1.csv'),
pd.read_csv('csv2.csv')
])
result=df.groupby('link', as_index=False).sum()
result['node'] = 'allnode'
result.to_csv('result.csv')
其中csv1.csv是:
节点,链接,输入率,输出率 节点1,链接1,10,20 节点1,链接2,30,50 节点1,链接3,40,60
而csv2.csv是:
节点,链接,输入率,输出率 node2,link1,20,10 node2,link2,50,70 node2,link3,80,40
result.csv文件将包含:
链接,输入,输出,节点 链接1,30,30,所有节点 link2,80,120,所有节点 链接3,120,100,所有节点
如果要重新排序列,可以通过提供订单列表来完成
result[[
'node','link','rate-in','rate-out'
]].to_csv('result.csv', index=False)
一个小问题,在result.csv中,将node列放在末尾。是否可以将其作为第一列?