从DataFrame转换列中特定元素的类型



我有一个列从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

所以我的问题是:

  • 有办法做到这一点吗?
  • 有可能熊猫。系列包含从字符串到整数的不同类型的元素?
  • 有一个函数来检查转换这个之前的类型?比如带有条件
  • 的类型

不可能直接有两个不同类型的系列,但让我试试下面的解决方案。

  1. 获取列的所有元素
  2. 尝试转换您的数据类型
  3. 放到[element]
  4. 添加到列后。

使用以下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个位置,这将是你所需的数据类型

相关内容

  • 没有找到相关文章