我目前正在嘗試按多個值過濾 CSV 檔案中的一列。例如,我想要 CSV 檔案中與部門 104、105、106 等相關的所有資料。我有下面的代碼,到目前為止,它適用于每個部門。但是,是否有更動態的東西可以利用部門陣列?我正在考慮使用 for 回圈,但到目前為止我的嘗試已經給我帶來了錯誤。我知道簡單的解決方案是使用一系列 or 陳述句,但是,我需要按至少 10-15 個部門進行過濾,這似乎比它可能的效率低。
import pandas as pd
report = "file.csv"
df = pd.read_csv(report, low_memory=False)
departments = [104, 105, 106, 107]
df = df[(df['Department'] == departments[0])]
df.to_csv('file_filtered.csv')
uj5u.com熱心網友回復:
您可以loc結合使用isin來過濾所有部門
df=df.loc[df['Department'].isin(departments)]
df.to_csv('file_filtered.csv')
uj5u.com熱心網友回復:
或者,您可以in與query.
看看這個例子:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'departments': np.arange(100,110),
'foo': np.arange(0,10),
'bar': np.arange(10,0,-1)})
print(df)
departments = [104, 105, 106, 107]
print(df.query('departments in @departments'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/520948.html
標籤:Python熊猫CSV
