考虑df
np.random.seed([3,1415])
df = pd.DataFrame(np.random.choice([(1, 2), (3, 4), np.nan], (10, 10)))
df
如何使用NaN
填充(0, 0)
我把这个黑客放在一起,但我假设有更直接的方法。这不适用于pd.Series
df.stack().unstack(fill_value=(0, 0))
答案 0 :(得分:4)
您可以使用var mj = function(x, y, z) {
var xName = x && x.name;
var yName = y && y.name;
var zName = z && z.name;
}
mj({
name: "mo"
})
:
.applymap
如果您使用import numpy as np
import pandas as pd
np.random.seed([3,1415])
df = pd.DataFrame(np.random.choice([(1, 2), (3, 4), np.nan], (10, 10)))
df.applymap(lambda x: (0,0) if x is np.nan else x)
:
pd.Series
apply
答案 1 :(得分:1)
我比你更喜欢你的解决方法,但它应该完成工作。
import pandas as pd
import numpy as np
np.random.seed([3,1415])
df = pd.DataFrame(np.random.choice([(1, 2), (3, 4), np.nan], (10, 10)))
idx_arrays = np.where(df.isnull())
idx_tups = zip(idx_arrays[0], idx_arrays[1])
for tup in idx_tups:
df.loc[tup] = (0, 0)