2017-06-20 145 views
1

我需要使用Python和Angular JS从python发送一个CSV文件到网页并相应地显示它。比较两个csv并合并它们

我有2个CSV文件与领域

CSV1

Country code,Telecom,Latency 

919618, India Private Mobile,0.008800 

919619, India Private Mobile,0.008800 

919620, India Private Mobile,0.008800 

CSV2

Country code,Telecom,Latency 

919802, India Private Mobile,0.008400 

919803, India Private Mobile,0.008400 

919620, India Private Mobile,0.008400 

该网页应显示为

Country code,Telecom,Latency 

919618, India Private Mobile,0.008800 

919619, India Private Mobile,0.008800 

919802, India Private Mobile,0.008400 

919803, India Private Mobile,0.008400 

919620,India Private Mobile,0.008400,0.008800 

(最后行包含两个值的原因在CSV文件中包含919620共同在这两个)

所以现在我是新的角JS和烧瓶, 只是引导我如何开始?

开始使用此

import pandas as pd 
import numpy as np 


dfa = pd.read_csv('rate4.csv', names=['Country Code', 'SP', 'Rate']); 
dfb = pd.read_csv('rate3.csv', names=['Country Code', 'SP', 'Rate']); 
+0

[合并2个CSV文件]中可能的复制( https://stackoverflow.com/questions/16265831/merging-2-csv-files) –

回答

1

您可以输出DataFrame使用concatgroupby通过Country code列和Telecom使用与joinLatency

df = pd.concat([df1, df2]) \ 
     .groupby(['Country code','Telecom'])['Latency'] \ 
     .apply(lambda x: ','.join(x.astype(str))) \ 
     .reset_index() 
print (df) 
    Country code    Telecom  Latency 
0  919618 India Private Mobile   0.0088 
1  919619 India Private Mobile   0.0088 
2  919620 India Private Mobile 0.0088,0.0084 
3  919802 India Private Mobile   0.0084 
4  919803 India Private Mobile   0.0084 
+0

回溯(最近的通话最后): 文件“C:/ Users/Yash Kumar Atri/PycharmProjects/untitled/test/prettyprint.py”,第12行,在 df = pd.concat([dfa,dfb])。groupby(['Country Code', ''')'['Latency']。join(lambda x:','。join(x.astype(str))) 文件“C:\ Program Files \ Python36 \ lib \ site-packages \ pandas \ core \ groupby.py“,551行,在__getattr__ (type(self).__ name__,attr)) AttributeError:'SeriesGroupBy'对象没有属性'join' –

+0

抱歉,这是错误的,现在它工作。 – jezrael

+0

嘿,你可以建议我一次显示整个数据导致它显示28 233 GHANA FIXED 0.0088 29 234尼日利亚固定0.0088 ... ... ... ... 20431 91612794印度固定0.0084 20432 91674791印度固定0.0084因为它显示三个点之间 –

相关问题