python - 将列名称从字符串更改为 float

标签 python pandas string dtype

我有很多列的数据框,其中一些是字符串,一些是数字。现在,当我将列名称打印为列表时,我得到如下内容:

df.columns.tolist()
>>>['name','code','date','401.2','405.6','507.3'...]

我想将数字列获取为 float 而不是字符串,我还没有找到任何方法可以做到这一点,是否可以做这样的事情? 我的最终目标是能够仅创建数字列名称的列表,因此如果您现在知道其他方式来分隔它们,当它们是字符串时也可以工作。

最佳答案

将自定义函数与 try- except 语句一起使用:

df = pd.DataFrame(columns=['name','code','date','401.2','405.6','507.3'])

def f(x):
    try:
        return float(x)
    except:
        return x

df.columns = df.columns.map(f)
 
print (df.columns.tolist())
['name', 'code', 'date', 401.2, 405.6, 507.3]

关于python - 将列名称从字符串更改为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63682003/

相关文章:

python - 在 OpenCV 中填充圆圈

python - 带元组键的 Max 函数 [更新]

python - 使用 int8 列检查 Pandas 数据框中的 NaN 值

python - 在列名python中的特定位置保留字符串

JavaScript - 将字符串中的小数倒置

python - recv() 不断返回相同的数据

python - bool 函数,用于确定白王是否处于检查棋盘上的给定位置

c++ - 使用 std::string 作为 std::map 的键

python - Pandas 系列按月份索引排序

json - 带有转义引号的 Groovy JsonSlurper JSON 值