我开始学习Python,我有一个问题与熊猫数据框架。在R中,即使数字列具有NaN值,R也会设法在每个列中定义正确的数据类型。在Pandas中,情况似乎并非如此:
data = {
"calories": ["NA", 380, 390],
"duration": [50, 40, 45]
}
df = pd.DataFrame(data)
df.dtypes
如何自动检测每列中正确类型的数据?
Thanks in advance
"如果是字符串,则使用np.nan
或float('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'
)。