2017-06-20 190 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因爲它顯示三個點之間 –

相關問題