我正在尝试将stop_id
中的stop_times.csv
与stop_id
中的stops.csv
进行匹配,以便复制stop_lat
和stop_lon
到stop_times.csv
中的各自列。
Gist文件:
stops.csv
LINK
stop_times.csv
LINK
这是我的代码:
import pandas as pd
st = pd.read_csv('csv/stop_times.csv', sep=',')
st.set_index(['trip_id','stop_sequence'])
stops = pd.read_csv('csv/stops.csv')
for i in range(len(st)):
for x in range(len(stops)):
if st['stop_id'][i] == stops['stop_id'][x]:
st['stop_lat'][i] = stops['stop_lat'][x]
st['stop_lon'][i] = stops['stop_lon'][x]
st.to_csv('csv/stop_times.csv', index=False)
我知道脚本正在应用副本,但我不知道还有什么其他方法可以做到这一点,因为我对熊猫来说相当新。
答案 0 :(得分:1)
您可以merge
两个DataFrame:
pd.merge(stops, st, on='stop_id')
由于每个列都有stop_lat
列,因此它会为您提供stop_lat_x
(好的)和stop_lat_y
(始终为零)。然后,您可以删除或忽略坏列,并根据需要输出生成的DataFrame。