2016-10-09 2 views
-1

Ich habe zwei CSV-Dateien.Holen Sie sich die einzelnen Zeilen in Python

One ist wie folgt:

"CONS_NO","DATA_DATE","KWH_READING","KWH_READING1","KWH" 
"1652714033","2015/1/12","4747.3800","4736.8000","10.5800" 
"3332440062","2015/1/12","408.6800","407.8200","0.8600" 
"7804314033","2015/1/12","1794.3500","1792.5000","1.8500" 
"0114314033","2015/1/12","3525.2000","3519.4400","5.7600" 
"1742440062","2015/1/12","3097.1900","3091.4100","5.7800" 
"8230100023","2015/1/12","1035.0500","1026.8400","8.2100" 

Etwa sechs Millionen Zeilen in allen.

Die andere ist, wie folgt:

6360609057 
8771218657 
1338004100 
2500009393 
9184968250 
9710581700 
8833903141 

Über 10 Tausend Zeilen in allen.

Die zweite CSV-Datei hat nur die CONS_NO. Ich möchte die Zeilen in der ersten CSV-Datei finden, die der Nummer in der zweiten CSV-Datei entspricht; Löschen Sie die anderen Zeilen in der ersten CSV-Datei in Python.

+2

und was hast du bisher versucht? –

+0

Pandas unterstützt [die Verbindung zweier DataFrames] (http://pandas.pydata.org/pandas-docs/stable/merging.html#database-style-dataframe-joining-merging). Versuchen Sie es selbst zu lösen und bearbeiten Sie die Frage mit etwas Code, wenn Sie nicht weiterkommen. –

+0

Danke, lass es mich versuchen. –

Antwort

0

Sie können die beiden DataFrame mithilfe der Merge-Methode in pandas zusammenführen.

ich Ihre Beispieldaten ändern auf die folgenden:

test1.csv ist:

"CONS_NO","DATA_DATE","KWH_READING","KWH_READING1","KWH" 
"1652714033","2015/1/12","4747.3800","4736.8000","10.5800" 
"3332440062","2015/1/12","408.6800","407.8200","0.8600" 
"7804314033","2015/1/12","1794.3500","1792.5000","1.8500" 
"8833903141","2015/1/12","3525.2000","3519.4400","5.7600" 
"1742440062","2015/1/12","3097.1900","3091.4100","5.7800" 
"8833903141","2015/1/12","1035.0500","1026.8400","8.2100" 

`test2.csv‘ ist:

6360609057 
8771218657 
1338004100 
2500009393 
9184968250 
9710581700 
8833903141 

Sie sie jetzt mit dem folgenden Code zusammenführen können :

import pandas as pd 

df1 = pd.read_csv('test1.csv') 
df2 = pd.read_csv('test2.csv', names=['CONS_NO']) 

pd.merge(df1, df2, on='CONS_NO') 

gibt es die folgende Ausgabe:

CONS_NO  DATA_DATE KWH_READING KWH_READING1 KWH 
0 8833903141 2015/1/12 3525.20  3519.44   5.76 
1 8833903141 2015/1/12 1035.05  1026.84   8.21 
Verwandte Themen