我有一本州字典(例如 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/