python - 如何将 pandas 列转换为 double in for 循环?

标签 python pandas

我有一个名为 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'

最佳答案

to_double 函数在 pandas 中不存在。 pandas 数据类型本质上是 numpy data types

我假设你的意思是 float64 by double

你可以让 numpy 为你决定精度

for col in cols10:
    if col.startswith('m_'):
        df[col] = df[col].astype(float)

或者自己指定精度

for col in cols10:
    if col.startswith('m_'):
        df[col] = df[col].astype(np.float64) # or np.float32 or np.float16

关于python - 如何将 pandas 列转换为 double in for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48328970/

相关文章:

python - Pandas 无法从 Numpy 时间戳数组创建 DataFrame

python - 尝试按名称将几组列堆叠到多个目标列中

python - 如何对 DataFrame 中的数值和字符串值进行排序?

python - 如何在 PySpark 中构建稀疏矩阵?

python - TensorFlow 中 Tensor 的部分更新

python - 嵌套for循环迭代多个字典,有没有更简单的方法?

python - 将两列数据框转换为 Pandas 中的出现矩阵

python - 如何在 Pandas 中一起使用 distinct 和 where 子句?

python - 使用 np.where 将列值转换为 NaN

python - 组织从 Excel 读取到 Pandas DataFrame 的数据