我嘗試打開.dta作爲DataFrame。 但出現一個錯誤:「ValueError:Column ...的值標籤不是唯一的,重複的標籤是:」後面跟着一個標籤,至少兩列標籤。Stata to Pandas:即使有重複的價值標籤?
我知道標籤多重代碼與stata中完全相同的值標籤不是很聰明(不是我的錯:)) 經過一些研究,我知道,熊貓不會接受重複的價值標籤(這是聰明的)。
但我不能想出一個(好)的解決方案: 有:
一個。在這個過程中,用熊貓打開數據的平滑方式,只需重命名雙打(如「label」到「label(2)」)?
這裏是數據的模樣(值標籤在括號中):
| multilabel
1 | 11 (oneone or twotwo)
2 | 22 (oneone or twotwo)
3 | 33 (other-label-which-is-unique)
到目前爲止我的代碼:
import pandas as pd
#followed by any option that delivers this solution:
dataframe = pd.read_stata('file.dta')
或
灣一種快速簡單的告訴stata的方法:只需將「label(2)」而不是「label」重新命名爲所有重複值標籤? 是的,到目前爲止的代碼也相當沉悶:
use "file.dta"
*followed by a loop wich finds repeated labels and changes them
save "file.dta", replace
是的,有很多重複的值標籤走線槽它一個接一個。
而這裏的Stata-命令產生一個最小的例子:
set obs 1
generate var1 = 1 in 1
set obs 2
replace var1 = 2 in 2
set obs 3
replace var1 = 3 in 3
generate var2 = 11 in 1
replace var2 = 22 in 2
replace var2 = 33 in 3
rename var2 multilabel
label define labelrepeat 11 "oneone or twotwo" 22 "oneone or twotwo"
label values multilabel labelrepeat
我很高興每個建議!
我在這裏看不到一個可重複的例子。 https://stackoverflow.com/help/mcve提供建議。 –
好吧,你是對的,即使我認爲在這種情況下,它不會幫助太多,有一個例子 - 數據會爲每個人創造更高的質量。 SRY。 –
我不是一個熊貓人,這是你最需要幫助的地方,但是從Stata的末尾開始,'解碼多標籤,gen(valuelabel)'後跟'label multilabel'標籤值將刪除你認爲有問題的值標籤的重複。 –