我有一个数据框df
,其中包含一系列年份的许多字段名称。检查列名是否存在
field
year description
1993 bar0 a01arb92
bar1 a01svb92
bar2 a01fam92
bar3 a08
bar4 a01bea93
然后,对于每一年,我有了id
在df
提到的字段名称的列和其他列,部分(或全部)一STATA文件。例如,1993.dta
可能是
id a01arb92 a01svb92 a08 a01bea93
0 1 1 1 1
0 1 1 1 2
我需要在相应的文件来检查,每年如果真的存在df
列出的所有字段(如列)。然后我想将结果保存回原始数据框中。有没有一种很好的方式来做到这一点,而不是遍历每一个领域?
预期输出:
field exists
year description
1993 bar0 a01arb92 1
bar1 a01svb92 1
bar2 a01fam92 0
bar3 a08 1
bar4 a01bea93 1
例如,如果每一个场,但在a01fam92
1993年文件作为列存在。
那么,这就是我最初的想法。但是,它遍历每个文件,然后在将其保存为字典后,我会假设必须将其迭代到原始数据框上。没有办法使用'df'和'd'都是数据帧的事实吗? – FooBar 2014-10-28 16:55:38
@FooBar检查更新。如果我们可以使用过滤呢我们创建一个过滤列表,在d中添加每个元素(如果它在字段中),然后将结果与d进行比较。如果我们得到相同的列表,则意味着所有元素都在字段中,在相反的情况下是错误的。 – 2014-10-29 13:30:51
我认为你的更新应该读取'return [...] == df [df [“year”] == x] .fields'。但是,我只知道它是否包含*全部*的字段。为了恢复问题中的预期输出,我仍然需要遍历所有的字段,不是吗? – FooBar 2014-10-29 14:48:57