我有一个列从DataFrame,其中包含字符串格式的混合元素。我只想将字符串格式的数字转换为整数或通常转换为数值。"free"这个词应该保留。
price type
0 '100' str
1 free str
2 '80' str
3 '200' str
4 free str
输出应该如下所示
price type
0 100 int
1 free str
2 80 int
3 200 int
4 free str
所以我的问题是:
- 有办法做到这一点吗?
- 有可能熊猫。系列包含从字符串到整数的不同类型的元素?
- 有一个函数来检查转换这个之前的类型?比如带有条件 的类型
不可能直接有两个不同类型的系列,但让我试试下面的解决方案。
- 获取列的所有元素
- 尝试转换您的数据类型
- 放到[element]
- 添加到列后。
使用以下python代码
import pandas as pd
""" a.txt
price type
100 str
free str
80 str
200 str
free str
"""
df = pd.read_csv('a.txt', sep=" ")
new = []
for i in df.values:
try:
new.append([int(i[0])])
except:
new.append([str(i[0])])
df['new'] = new
print(df)
以下是
的输出price type new
0 100 str [100]
1 free str [free]
2 80 str [80]
3 200 str [200]
4 free str [free]
现在当你迭代值时总是访问第0个位置,这将是你所需的数据类型