我有这段代码:
import pandas as pd
data = pd.read_csv('data.csv', header=None)
print((data[[7]].str[:2]))
我的数据是这样的:
1,a,0,11,1,11.09,aa, 0 dollars
1,b,0,11,1,17.38,bb, 1 dollar
3,c,0,11,1,24.68,cdd, 12 dollares
我正在尝试将我的数据集转换为:
1,a,0,11,1,11.09,aa, 0
1,b,0,11,1,17.38,bb, 1
3,c,0,11,1,24.68,cdd, 12
当我运行我的代码时,出现了这个错误:
builtins.AttributeError: 'DataFrame' object has no attribute 'str'
如何将我的数据转换成我想要的数据?
谢谢!
最佳答案
您需要为 Series
删除一个 []
,这里使用双 []
创建一列 DataFrame
:
data[7] = data[7].str[:2]
print (data)
0 1 2 3 4 5 6 7
0 1 a 0 11 1 11.09 aa 0
1 1 b 0 11 1 17.38 bb 1
2 3 c 0 11 1 24.68 cdd 1
但是如果要提取数值使用extract
并转换为 integer
s:
data[7] = data[7].str.extract('(\d+)', expand=False).astype(int)
print (data)
0 1 2 3 4 5 6 7
0 1 a 0 11 1 11.09 aa 0
1 1 b 0 11 1 17.38 bb 1
2 3 c 0 11 1 24.68 cdd 12
关于Python - 使用前 2 个元素转换列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48975614/