Saya memiliki 2 file txt yang sedang dibaca oleh Pandas.

File pertama berisi:

code  speed1  speed2
VST    50/20M  15/1M
BMR    50/20M  15/1M
BMQ    50/20M  15/1M
VSK    50/20M  50/20M

File kedua berisi:

VST,L_602356450160818666
VSK, 602356450160818556
and so on

Saya ingin mengambil mis. VST di file kedua dan cocokkan kode di file pertama dan ambil nilai kecepatan 1 dan 2 yang sesuai. Dan lakukan ini untuk VSK dll.

Saya telah mulai dengan menggunakan dengan menggunakan index_col=0 di file pertama dan menggunakan df.loc[VST] untuk mendapatkan nilai. Bagaimana cara memasukkan df.loc ke dalam for loop untuk mengulangi lebih dari 100 kode di file kedua. Atau ada cara yang lebih baik?

Terima kasih

PEMBARUAN:************

Datang dengan ini:

dataset = pd.read_csv('firstFile.csv', usecols=cols, 
header=None, index_col=0)

df = pd.read_csv('secondFile.txt', header=None, index_col=0)

for i in df.iterrows():
   for j in dataset.iterrows():
      if i[0] == j[0]:
         print(dataset.loc[j[0]])

Keluar:

20    50/20M
22    50/20M
Name: VST, dtype: object
20    50/20M
22    50/20M
Name: VSK, dtype: object

Output yang saya inginkan adalah bentuk kamus/json dan menggunakan VST sebagai kunci dan mendapatkan nilainya. Haruskah mengubah kedua file menjadi json terlebih dahulu sebelum proses lainnya?

1
bonjih 14 November 2020, 03:05

1 menjawab

Jawaban Terbaik

Yang Anda inginkan adalah penggabungan:

dataset = pd.read_csv('firstFile.csv', sep='\s+')
df = pd.read_csv('secondFile.csv', header=None, names=['code', 'value'])

result = df.merge(dataset, how='left', left_on='code', right_on='code')

Keluaran:

  code                 value  speed1  speed2
0  VST  L_602356450160818666  50/20M   15/1M
1  VSK    602356450160818556  50/20M  50/20M
0
Code Different 15 November 2020, 15:11