dok*_*ktr 8 python object dataframe pandas
我正在尝试使用pandas函数read_sas从SAS的.sas7bdat格式读取数据:
import pandas as pd
df = pd.read_sas('D:/input/houses.sas7bdat', format = 'sas7bdat')
df.head()
Run Code Online (Sandbox Code Playgroud)
我在df数据框中有两种数据类型 - float64和object.我对float64数据类型完全满意,所以我可以自由地将它转换为int,string等.问题是对象数据类型,我可以在df dataframe中看到这样包裹:
b'Text'
Run Code Online (Sandbox Code Playgroud)
或者像这样:
b'12345'
Run Code Online (Sandbox Code Playgroud)
代替
Text
Run Code Online (Sandbox Code Playgroud)
要么
12345
Run Code Online (Sandbox Code Playgroud)
我不能将它分别转换为字符串或int或"普通"对象数据类型.此外,我不能使用切片或替换技术来使用b''.所以我无法使用具有对象数据类型的列.请告诉我如何摆脱b''.
MAF*_*303 11
加上这个 encoding="utf-8"
所以这一行将如下:
df = pd.read_sas('D:/input/houses.sas7bdat', format = 'sas7bdat', encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)
首先,找出您的sas数据集编码。在SAS中,在数据集上运行proc内容。检查“编码”。就我而言,我的编码是“ latin1 Western(ISO)”。然后输入您的编码,如下所示:
df = pd.read_sas('filename', format = 'sas7bdat', encoding = 'latin-1')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6058 次 |
| 最近记录: |