将循环内生成的行添加到新数据框
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)
这里,pd
是pandas
,df
是数据框。
只要下面的表达式是 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()
我有一个 for
循环来遍历数据框的每一行。现在,当某些表达式匹配时,我想将匹配的行添加到新的数据框中。
这是我所做的:
dfWithSand3 = pd.DataFrame()
for index, row in df.iterrows():
if row['embarked'] == 'S' and row['pclass'] == 3:
dfWithSand3.append(row)
print(dfWithSand3)
这里,pd
是pandas
,df
是数据框。
只要下面的表达式是 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()