将循环内生成的行添加到新数据框

adding row generated inside a loop to a new data frame

我有一个 for 循环来遍历数据框的每一行。现在,当某些表达式匹配时,我想将匹配的行添加到新的数据框中。

这是我所做的:

dfWithSand3 = pd.DataFrame()
for index, row in df.iterrows():
    if row['embarked'] == 'S' and row['pclass'] == 3:
        dfWithSand3.append(row)
print(dfWithSand3)

这里,pdpandasdf是数据框。

只要下面的表达式是 True 我想将行添加到数据框 dfWithSand3.

if row['embarked'] == 'S' and row['pclass'] == 3:

现在数据框dfWithSand3的值是:

Empty DataFrame
Columns: []
Index: []

下面是可能的 row

Unnamed: 0     600
survived         0
pclass           3
sex           male
age             42
sibsp            0
parch            0
fare          7.55
embarked         S

我不知道行是否表示数据框。

此外,我如何将行添加到我创建的新数据框中?

IIUC 你可以这样做:

dfWithSand3  = df.loc[(df.embarked == 'S') & (df.pclass == 3)].copy()

或者如果您不想保留原始索引值:

dfWithSand3  = df.loc[(df.embarked == 'S') & (df.pclass == 3)].reset_index().copy()