【发布时间】:2019-05-31 11:58:13
【问题描述】:
带有fillna() 的行会引发警告,即使它没有就地执行。这是为什么呢?
import pandas as pd
import numpy as np
tuples = [('foo', 1), ('foo', 2), ('bar', 1), ('bar', 2)]
index = pd.MultiIndex.from_tuples(tuples)
df = pd.DataFrame(np.random.randn(2, 4), columns=index)
df.loc[0, ('foo', 1)] = np.nan
# this works without warning
# df = pd.DataFrame({'foo': [1, np.nan, 3], 'bar': [np.nan, 22, 33]]})
df1 = df[['foo', 'bar']]
# df1 = df[['foo', 'bar']].copy() # this does not help
filled = df1.fillna({'foo': 100, 'bar': 200}, inplace=False)
如果foo 和bar 是普通列,而不是多索引,则不会出现问题。
【问题讨论】:
-
df1 = df[['foo', 'bar']].copy()? -
也抛出警告
-
我只是在我的 Jupyter Notebook 中复制、粘贴和运行您的代码,但没有出现警告。为什么会这样?
标签: python pandas dataframe warnings nan