python - 迭代 DataFrame 时设置值

标签 python numpy pandas

我有一本州字典(例如 IA:爱达荷州)。我已将字典加载到 DataFrame bystate_df 中。

然后我导入一个包含死亡状态的 CSV,我想在阅读这些行时将它们添加到 bystate_df 中:

byState_df = pd.DataFrame(states.items())
byState_df['Deaths'] = 0
df['Deaths'] = df['Deaths'].convert_objects(convert_numeric=True)
print byState_df
for index, row in df.iterrows():
    if row['Area'] in states:
           byState_df[(byState_df[0] == row['Area'])]['Deaths'] = row['Deaths']         

print byState_df

但是byState_df后缀仍然是0:

      0                         1  Deaths
 0   WA                Washington       0
 1   WI                 Wisconsin       0
 2   WV             West Virginia       0
 3   FL                   Florida       0
 4   WY                   Wyoming       0
 5   NH             New Hampshire       0
 6   NJ                New Jersey       0
 7   NM                New Mexico       0
 8   NA                  National       0

我在迭代时测试了 row['Deaths'] 并生成了正确的值,但它似乎只是错误地设置了 byState_df 值。

最佳答案

您可以尝试以下代码,我使用 .loc 而不是 [][]

byState_df = pd.DataFrame(states.items())
byState_df['Deaths'] = 0
df['Deaths'] = df['Deaths'].convert_objects(convert_numeric=True)
print byState_df
for index, row in df.iterrows():
    if row['Area'] in states:
           byState_df.loc[byState_df[0] == row['Area'], 'Deaths'] = row['Deaths']         

print byState_df

关于python - 迭代 DataFrame 时设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31545755/

相关文章:

python - 如何将二级索引更改为 pandas DataFrame 中的二级列?

python - 如何分割成 block (子矩阵),或处理一个巨大的矩阵,在 numpy 上给出内存错误?

python - 与 Pandas 合并后设置索引?

python - cx_freeze : How do I resolve conflicts caused by multiple . 同名dylib文件

传递给构造函数的 Python 函数引用变成 c_void_p 数据类型

python - 在 Python 3.2 中更改单个打印行的颜色?

python - 是否有一个Python函数(最好是seaborn)可以帮助我用散点图上的一条线连接两组点?

Python 如何在 numpy 数组中查找第一个重复项

python - 如何根据另一列的值在 Pandas 数据框列中创建新值

python - 如何按顺序标记 Pandas 中的分类变量?