Python - 使用前 2 个元素转换列

标签 python string pandas dataframe

我有这段代码:

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并转换为 integers:

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/

相关文章:

php - 删除特定点后的所有文本

python - 如何将 Python 字典附加到 Pandas DataFrame,将键与列名匹配

python - 如何用另一个 df 中 2 列的值范围填充 df 列?

python - 对一个对象执行某些操作会对同一类的所有对象执行相同的操作吗?

python - 从 Pandas Dataframe 中删除了行 - 现在索引搞砸了吗?

c# - 当字符串为空时,用 '0' 替换字符串值

python - Pandas 系列中列表的有效串联

具有嵌套元素的 Python LXML 迭代解析

python - C++ 余数和 NumPy/Python 余数之间的区别

javascript - JavaScript 中的 UTF-8 花式文本转字母数字