2つのcsvファイルがあります.1つはヘッダー付きの単一の列で、もう1つはヘッダー付きの複数の列です。私は、1つの列ファイルの値を検索し、他のファイルの同じヘッダーで列を検索します。一度一致するものが見つかると、その行全体を印刷します。私はこれがvlookup関数であることは分かっていますが、複数の列を持つcsvファイルは非常に大きく、これを達成するために数式を使用しようとすると常にクラッシュすることがあります。だから、私は解決策としてPythonを使用しようとしてきました。これを印刷しようとし別のcsvファイル内の1つのcsvファイルの値を検索し、行を出力します。
Name, age,number,AA,BB,CC,DD,EE
John, 23, 1, 34,35,36,37,38
Mary, 32, 2, 33,34,35,36,37
Jacob , 43, 3, 32,33,34,35,36
Matthew,22, 4, 31,32,33,34,35
Jean, 18, 5, 30,31,32,33,34
:このテーブルを検索
age
23
43
18
:
私はこのコラムを取っている私はこのコードを使用しようとしてきた
Name, age,number,AA,BB,CC,DD,EE
John, 23, 1, 34,35,36,37,38
Jacob , 43, 3, 32,33,34,35,36
Jean, 18, 5, 30,31,32,33,34
しかし、私はすべて混在して、最初の行を列として出力します:
with open('/home/s/Untitled 1.csv') as f:
r=pandas.read_csv(f)
with open('/home/s/Test1.csv','r') as w:
x=pd.read_csv(w)
col=w['age']
for line in w:
for col in w:
for row in r:
if row in col:
print(line)
私は、基本的に、クエリテーブルの最初のエントリを使用して、データテーブルの同じ見出しを持つ列を検索し、その行を印刷し、残りの行のエントリをループします。
アドバイスをいただければ幸いです!
うわー!それは速い反応でした!あなたの答えは非常に徹底的で、私は本当に混乱していました。だから基本的には、より良い方法では、データフレーム(ヘッダを切り捨てる)に年齢を格納してから、incsv2を読み込み、2番目の列のエントリが '年齢'になってその行を印刷するとしたら、 – Pythling
はい、そうです。私はもう一つ言及するのを忘れていました:もしcsvファイルにスペースがあれば、 'pandas'はヘッダーをスペースで読み込みます。 –