我正在尝试使用纬度和经度进行一些文件合并。
Input File1.csv
Name,Lat,Lon,timeseries(n)
London,80.5234,121.0452,523
London,80.5234,121.0452,732
London,80.5234,121.0452,848
Paris,90.4414,130.0252,464
Paris,90.4414,130.0252,829
Paris,90.4414,130.0252,98
New York,110.5324,90.0023,572
New York,110.5324,90.0023,689
New York,110.5324,90.0023,794
File2.csv
Name,lat,lon,timeseries1
London,80.5234,121.0452,500
Paris,90.4414,130.0252,400
New York,110.5324,90.0023,700
现在预期输出
File2.csv
Name,lat,lon,timeseries1,timeseries(n) #timeseries is 24 hrs format 17:45:00
London,80.5234,121.0452,500,2103 #Addition of all three values
Paris,90.4414,130.0252,400,1391
New York,110.5324,90.0023,700,2055
使用python, numpy and dictionaries
,它会像key = sum of values
一样直,但我想使用Pandas
请建议我如何开始,或者可能是我的一些例子。我没有看到像带有Latitude
和Longitude
的Pandas的字典类型。
答案 0 :(得分:1)
在第一个df上执行groupby
聚合,然后使用其他df调用sum
然后merge
:
In [12]:
gp = df.groupby('Name')['timeseries(n)'].sum().reset_index()
df1.merge(gp, on='Name')
Out[14]:
Name Lat Lon timeseries1 timeseries(n)
0 London 80.5234 121.0452 500 2103
1 Paris 90.4414 130.0252 400 1391
2 New York 110.5324 90.0023 700 2055
聚合看起来像这样:
In [15]:
gp
Out[15]:
Name timeseries(n)
0 London 2103
1 New York 2055
2 Paris 1391
您的csv文件可以使用read_csv
加载,例如:
df = pd.read_csv('File1.csv')
df1 = pd.read_csv('File2.csv')