2017-04-14 14 views
0

私はCSV1とCSV2の2つの.csvファイルを持っています。 CSV1では、次のようにフォーマットされたデータの大規模なリストである:別の.csvのデータで1つの.csvファイルをpythonで埋め込む

name, year 
Brian, 2016 
Lucy, 2016 
Bob, 2014 
Alen, 2012 

次にCSV2に:

year, zodiac 
2016, Monkey 
2015, Goat 
2014, Horse 
2013, Snake 
2012, Dragon 

私は一人一人のための干支は、このような追加の列として表示されますCSV1でそうなるようにしたいです:

name, year, zodiac 
Brian, 2016, Monkey 
Lucy, 2016, Monkey 
Bob, 2014, Horse 
Alen, 2012, Dragon 

私はpythonのパンダライブラリでこれを行うことは可能だと思うが、私はマニュアルに失われてしまった - 任意の提案をいただければ幸いです!

+1

パンダの紹介は[10 Minutes Tutorial](http://pandas.pydata.org/pandas-docs/stable/10min.html)です。それはあなたにあなたが知る必要があるほとんどすべてを与えるでしょう。 – tmrlvi

答えて

2

を試してみる必要があります。それは死んで簡単になります:

import pandas as pd 
# Loads csv1 with default index 
df1 = pd.read_csv("csv1.csv") 
# Loads csv2 and sets the year as the index 
df2 = pd.read_csv("csv2.csv", index_col=0) 

df1["zodiac"] = df1["year"].map(df2["zodiac"]) 

df1.to_csv("output.csv") 

df2の指標が年であること - それは、基本的に年の記号の辞書と同様に動作します。 mapは、辞書の中の値に対する検索表としてpandas.Seriesを検索します。

2

df.join()のようなサウンドは、まさにあなたが望むものです!年の列にある2つのデータフレームに参加し、必要に応じてcsvにエクスポートすることができます。

1

これを試してください:あなたはmap

import pandas as pd 

fn1 = r'/path/to/file1.csv' 
fn2 = r'/path/to/file2.csv' 

pd.merge(pd.read_csv(fn1, skipinitialspace=True), 
     pd.read_csv(fn2, skipinitialspace=True)) \ 
    .to_csv('/path/to/result.csv', index=False) 
+0

あなたはオペラが望んでいたものに注意を払っているように見えます。 – piRSquared

+0

@piRSquared、ありがとうございます!私はあなたが決して眠れないと感じています; – MaxU

+0

タクシーで空港に帰る。違います。私は3時間寝た – piRSquared

関連する問題