我有一个数据框df
,它包含了很多年的字段名。在
field
year description
1993 bar0 a01arb92
bar1 a01svb92
bar2 a01fam92
bar3 a08
bar4 a01bea93
然后,每年我都会有一个stata文件,它以id
作为列,并作为附加列,df
中提到的部分(或全部)字段名。例如,1993.dta
可以是
我每年都需要检查df
中列出的所有字段是否真的存在于相应的文件中(作为列)。然后我想将结果保存回原始数据框中。有没有一个很好的方法不用迭代每个字段就可以做到这一点?在
预期产量:
field exists
year description
1993 bar0 a01arb92 1
bar1 a01svb92 1
bar2 a01fam92 0
bar3 a08 1
bar4 a01bea93 1
例如,如果除了a01fam92
之外的每个字段都作为列存在于1993文件中。在
这里有一种方法,利用熊猫会自动填充缺失索引的NaN。在
首先准备数据。您可能已经完成了这一步。在
接下来,在df2中创建一个新列,并使用pandas将这些列复制到上一个数据帧。这将填充缺失值的NaN。然后使用
^{pr2}$fillna
指定一个值0。在尝试遍历每年,过滤数据帧以获得与每个特定年份相关联的字段,然后比较元素是否在stata文件中
你可以通过列出年份来概括这个过程
这里有关于如何filter fields using Pandas的详细说明。在
您可以使用All()运算符。在
^{pr2}$如果是真的,那么字段中的所有元素都在strata文件中。在
使一切都成为函数。在
^{3}$更新
相关问题 更多 >
编程相关推荐