我有一個數據框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