我有一个名为df10
的pandas数据框。
cols10 = list(df10.columns)
我想将数据类型更改为double
,其中列名称以"m_"
for param in cols10:
if param.startswith("m_"):
df10[[param]] = df10[[param]].apply(pd.to_double)
但是,我收到此错误:
AttributeError: 'module' object has no attribute 'to_double'
答案 0 :(得分:2)
pandas中不存在函数for col in cols10:
if col.startswith('m_'):
df[col] = df[col].astype(np.float64) # or np.float32 or np.float16
。 pandas数据类型基本上是numpy data types
我假设你的意思是float64 by double
你可以让numpy为你决定精确度
<span id="mobileInputContainer">
<font color="#008080">Mobile: </font></b><font id="mobileInput">Default </font><br>
</span>
或自己指定精度
if (mobile.length < 1) {
document.getElementById('mobileInputContainer').style.display = 'none';
}
答案 1 :(得分:2)
你可以不用循环来做到这一点,
reqd_cols = df10.columns[df10.columns.str.startswith('m_')]
df10[reqd_cols] = df10[reqd_cols].astype('float64')
答案 2 :(得分:0)
使用'value'=>array_key($chosen_systems);
函数将列转换为astype()
(python没有类似C的float
类型。
double
这种方法比使用cols10 = [c for c in df10 if c.startswith("m_")]
df10.loc[:, cols10 ] = df10.loc[:, cols10].astype(float)
循环更快,但是如果你坚持循环遍历列:
for
有关浮点数here的更多信息:
浮点数通常在C
中使用double实现