将数据添加到 Pandas 数据框

Adding data to a Pandas dataframe

我有一个包含 Physician_Profile_City、Physician_Profile_State 和 Physician_Profile_Zip_Code 的数据框。我最终想根据状态进行分层分析,但不幸的是,并不是所有的 Physician_Profile_State 都被填充。我开始四处寻找,试图弄清楚如何填充缺失的状态。我遇到了 pyzipcode 模块,它可以将邮政编码和 returns 状态作为输入,如下所示:

In [39]: from pyzipcode import ZipCodeDatabase
zcdb = ZipCodeDatabase()
zcdb = ZipCodeDatabase()
zipcode = zcdb[54115]
zipcode.state

Out[39]: u'WI'

我正在努力解决的问题是如何遍历数据框并在缺少该变量时添加适当的 "Physician_Profile_State"。任何建议将不胜感激。

如果数据的形式是字典,则无需迭代,那么您应该能够执行以下操作:

df['Physician_Profile_State'] = df['Physician_Profile_Zip_Code'].map(zcdb)

否则你可以这样调用 apply:

df['Physician_Profile_State'] = df['Physician_Profile_Zip_Code'].apply(lambda x: zcdb[x].state)

如果上述方法不起作用,因为它无法生成与您对齐的系列 df,您可以将按行传递 axis=1 应用到 df:

df['Physician_Profile_State'] = df[['Physician_Profile_Zip_Code']].apply(lambda x: zcdb[x].state, axis=1)

通过使用双方括号,我们 return 允许您传递 axis 参数的 df