当前位置: 代码迷 >> python >> 熊猫to_numeric不转换空数据框
  详细解决方案

熊猫to_numeric不转换空数据框

热度:47   发布时间:2023-07-14 08:43:22.0

我需要它们的子集所有dtypes一个数据帧np.number to_numeric函数允许我对具有某些数据的数据帧执行此操作。 作为一个极端的案例,我正在使用一个空的数据框对其进行测试,但似乎无法正常工作。

import numpy as np
import pandas as pd

df = pd.DataFrame(columns=['col1', 'col2', 'col3'])
df = df.apply(pd.to_numeric, errors='coerce')
print(df.dtypes)

给我输出

col1   object
col2   object
col3   object
dtype: object

我在哪里

col1   int64
col2   int64
col3   int64
dtype: object

如果我填充数据框,则问题消失:

df = pd.DataFrame({'col1': [1, 2], 'col2': [1, 2], 'col3': [1, 2]})
df = df.apply(pd.to_numeric, errors='coerce')
print(df.dtypes)

给了我预期的输出。

有人可以解释这种不同的行为,并提出解决方法。 我不想明确检查数据框是否有数据,除非需要。

我正在使用python 3.6.1

使用似乎可以实现它

df=df.astype("int64")

您还可以为每个列显式分配类型

df = pd.DataFrame({'col1':pd.Series([], dtype='int'),
               'col2':pd.Series([], dtype='int'),
               'col3':pd.Series([], dtype='int')})

print(df.dtypes)

col1    int64
col2    int64
col3    int64
dtype: object
  相关解决方案