1
我有一个状态字典(示例IA:爱达荷州)。我已将字典加载到DataFrame bystate_df
中。迭代通过DataFrame时的设置值
然后我导入与我想将它们添加到bystate_df
美国死亡人数CSV,因为我读线:
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
值。
我想这是因为你用的'byState_df链片[(byState_df [0] ==行[“区”])] [“死亡”]',这样你实际上是在副本上设置一些价值观而不是实际的'df'。 –
第一个索引'[... == ...]'是高级索引,并产生一个副本。使用'['Deaths']进行索引可能会起作用,因为它会返回其中一个字段的视图。 – hpaulj