将列名称从字符串更改为浮点数
Change columns names from string to float
我有很多列的数据框,其中一些是字符串,一些是数字。现在,当我将列名称打印为列表时,我得到如下信息:
df.columns.tolist()
>>>['name','code','date','401.2','405.6','507.3'...]
我想将数字列作为浮点数而不是字符串,我还没有找到任何方法,可以这样做吗?
我最终的目标是能够创建仅包含数字列名称的列表,因此如果您现在知道其他方法将它们分开,当它们是字符串时也可以工作。
将自定义函数与 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]
使用列表理解
df.columns = [float(col) if col.replace('.', '').isnumeric() else col for col in df.columns]
res = df.columns.to_list()
print(res)
输出:
['name', 'code', 'date', 401.2, 405.6, 507.3]
我有很多列的数据框,其中一些是字符串,一些是数字。现在,当我将列名称打印为列表时,我得到如下信息:
df.columns.tolist()
>>>['name','code','date','401.2','405.6','507.3'...]
我想将数字列作为浮点数而不是字符串,我还没有找到任何方法,可以这样做吗? 我最终的目标是能够创建仅包含数字列名称的列表,因此如果您现在知道其他方法将它们分开,当它们是字符串时也可以工作。
将自定义函数与 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]
使用列表理解
df.columns = [float(col) if col.replace('.', '').isnumeric() else col for col in df.columns]
res = df.columns.to_list()
print(res)
输出:
['name', 'code', 'date', 401.2, 405.6, 507.3]