如果NaN在里面,则将Pandas的numerci列视为字符串



我开始学习Python,我有一个问题与熊猫数据框架。在R中,即使数字列具有NaN值,R也会设法在每个列中定义正确的数据类型。在Pandas中,情况似乎并非如此:

data = {
"calories": ["NA", 380, 390],
"duration": [50, 40, 45]
}
df = pd.DataFrame(data)
df.dtypes

如何自动检测每列中正确类型的数据?

Thanks in advance

"如果是字符串,则使用np.nanfloat('nan'):

data = {
"calories": [float('nan'), 380, 390],
"duration": [50, 40, 45]
}
df = pd.DataFrame(data)
print(df.dtypes)
calories    float64
duration      int64
dtype: object

或:

import numpy as np
data = {
"calories": [np.nan, 380, 390],
"duration": [50, 40, 45]
}
df = pd.DataFrame(data)

注意,如果使用read_csv, pandas可以推断NA值(默认为'', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', '<NA>', 'N/A', 'NA', 'NULL', 'NaN', 'n/a', 'nan', 'null')。

最新更新