@GiantsLoveDeathMetalは良い点を持っています。原則として、生データをoecd_bli
として読み込み、特定の条件を満たすDataFrameのサブセットを選択することができます。
デモあるいは
import pandas as pd
# Given a DataFrame of raw data
d = {
"Country": pd.Series(["Australia", "Austria", "Fiji", "Japan"]),
"Indicator": pd.Series(["Dwellings ...", "Dwellings ...", "Life ...", "Life ..."]),
"Value": pd.Series([1.1, 1.0, 2.2, 2.9]),
}
oecd_bli = pd.DataFrame(d, columns=["Country", "Indicator", "Value"])
oecd_bli

# Select rows starting with "Life" in column "Indicator"
condition = oecd_bli["Indicator"].str.startswith("Life")
subset = oecd_bli[condition]
subset

、.loc
介してラベル索引付けを使用してサブセットを選択:
subset = oecd_bli.loc[condition, :]
ここでloc
は[<rows>, <columns>]
を予期しています。したがって、条件を満たす行が表示されます。
詳細
データフレームのビューがTrue
条件を与えるすべての行のために提示されていることに注意してください。これは、DataFrameがboolean arraysに応答するためです。ブール配列の
例:設定条件に
>>> condition = oecd_bli["Indicator"].str.startswith("Life")
>>> condition
0 False
1 False
2 True
3 True
Name: Indicator, dtype: bool
他の方法:
>>> condition = oecd_bli["Indicator"] == "Life ..."
>>> condition = ~oecd_bli["Indicator"].str.startswith("Dwell")
>>> condition = oecd_bli["Indicator"].isin(["Life ...", "Crime ..."])
>>> condition = (oecd_bli["Indicator"] == "Life ...") | (oecd_bli["Indicator"] == "Crime ...")
- 直接等価(
==
)
- は望ましくない出来事
- は、(
~
)除外するホワイトリストの列は論理ビット演算子(|
、&
、など)あなたがする必要がいけない
'oecd_bli = pd.read_csv( "/ユーザ/ vladelec /デスクトップ/ Life.csv") DFと
[列値に基づいてPandasのDataFrame行を削除する]の可能な複製(https://stackoverflow.com/questions/18172851/deleting-dataframe-row-in-pandas-based-on-column-value) – GiantsLoveDeathMetal