2016-05-04 6 views
1

これはループのためにこれを行う直感的な方法があるように感じますが、私は現在固執しています。私はそれの一部を持っていたが、残りは擬似コードで満たした。これについてのいくつかの助けに大いに感謝します。試合はタブによってdelimtedテキストファイルにoccures場合擬似コード2 csv/dataframesからの列を比較した後に書き出す

if i == second_df[:1]: # state column in second data frame 
    and if j == second_df[:2]: # city column in second data frame 

import pandas as pd 
first_df= pd.read_csv('city_states.csv') 

second_df = pd.read_csv('locations.csv); 

for i in first_df[:,0]: #city column 
for j in first_df[:,1] #state column 

は、経度と緯度を書く

これは私が経度を生成しようとしている現在、やろうとしていますものですそれが別のCSVに含まれている場合、1つのCSVからの緯度。たぶんデータフレーム。都市と州がこの第二のCSVの都市と状態と一致した場合、私は最良の選択肢に

location.csv

zip state city lat lng 
35004 AL Acmar 33.584132 -86.51557 
35005 AL Adamsville 33.588437 -86.959727 
35006 AL Adger 33.434277 -87.167455 
35007 AL Keystone 33.236868 -86.812861 
35010 AL New Site 32.941445 -85.951086 
5014 AL Alpine 33.331165 -86.208934 
35016 AL Arab 34.328339 -86.489638 

を探しています。上記のpsudeocodeで書かれているように、タブで区切られた長さとlatitideを持つtxtファイルを作成する必要があります。まず、データフレームは長いが含まれており、緯度、我々は試合

city_state.csv

City  State 
Burlington VT 
Minneapolis MN 
Bloomington IN 
Irvine CA 

期待出力

があれば抽出しようとしているlocations.csvするcity_state.csvと第二のデータフレームreferesを指し
95.64652295 36.70384646 
72.6535921 23.0519796 
-86.2651028 43.222406 
55.29835975 25.25033149 
-117.87059452 34.11669299 
-80.26491717 25.80180169 

答えて

1

私はあなたがmergeto_csvが必要だと思う:

print df1 
    zip state  city  lat  lng 
0 35004 AL  Acmar 33.584132 -86.515570 
1 35005 AL Adamsville 33.588437 -86.959727 
2 35006 AL  Adger 33.434277 -87.167455 
3 35007 AL Keystone 33.236868 -86.812861 
4 35010 AL  NewSite 32.941445 -85.951086 
5 5014 AL  Alpine 33.331165 -86.208934 
6 35016 AL  Arab 34.328339 -86.489638 

print df2 
      City State 
0  Alpine AL 
1 Minneapolis MN 
2 Bloomington IN 
3  Irvine CA 

df = pd.merge(df1, df2, left_on=['state','city'], right_on=['State','City']) 
print df 
    zip state city  lat  lng City State 
0 5014 AL Alpine 33.331165 -86.208934 Alpine AL 

df[['lat','lng']].to_csv('filename.txt', sep='\t', header=False, index=False) 
+0

私の解決策をチェックしてください。私にとっては、「タブで区切られたテキストファイルに一致するものがあれば、経度と緯度を書きなさい」ということは少し不明です。列 'lan'と' long'だけを書く必要がありますか?希望の出力を追加できますか?あなたの入力には一致がないので、おそらく入力を少し変更することができます。 – jezrael

+0

すごい偉大だけど、私はlanとテキストファイルに書かれているだけを探しています – dedpo

+0

確かに期待出力を追加しました – dedpo

関連する問題