python, jumlah nilai dari beberapa baris
Oct 15 2020
Saya memiliki ratusan file csv seperti berikut:
Yang ingin saya lakukan adalah menghitung jumlah setiap baris untuk kolom A_*dan B_*, masing-masing.
Misalnya untuk file_1.csv, saya menggunakan kode berikut:
#for file_1.csv
import pandas as pd
df = pd.read_csv('file_1.csv')
df["A_sum"]=df["A_1"]+df["A_2"]+df["A_3"]
df["B_sum"]=df["B_1"]+df["B_2"]
df.to_csv (r'output_file_1.csv', index = False, header=True)
Karena saya harus memproses ratusan file seperti ini, Bagaimana cara saya mengubah kode sehingga dapat secara otomatis mengidentifikasi berapa banyak Akolom dan bkolom dalam file csv dan menghitung jumlahnya?
Misalnya, dapat menghasilkan kode file_3.csvseperti ini:
#for file_3.csv
import pandas as pd
df = pd.read_csv('file_3.csv')
df["A_sum"]=df["A_1"]+df["A_2"]
df["B_sum"]=df["B_1"]+df["B_2"]
df.to_csv (r'output_file_3.csv', index = False, header=True)
Terima kasih banyak.
Jawaban
2 QuangHoang Oct 15 2020 at 00:56
Anda dapat menggunakan filter:
ret_df = pd.DataFrame()
ret_df['A_sum'] = df.filter(like='A_').sum(1)
ret_df['B_sum'] = df.filter(like='B_').sum(1)
Atau gunakan regex, dan juga loop:
for type in ['A','B']:
df[f'{type}_sum'] = df.filter(regex=f'^{type}_').sum(1)
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'