我试图在我的DataFrame all_files_d
中用0填充所有浮点数NaN值,然后将其放入一个空列表或名为ts
的DataFrame中。
我的样本示例如下:
ColX ColY
56.9 6.4
67.5 NaN
NaN 8.9
NaN NaN
我尝试遵循此问题代码,因为它似乎对某些用户有效,但似乎存在NaN值,但未填充任何内容:
Fillna in multiple columns in place in Python Pandas
这是我的代码:
ts = []
all_files_d.apply(lambda x: x.fillna(0, inplace = True) if x.dtype.kind
in 'f' else x.fillna('.', inplace = True), axis = 1)
ts.append(all_files_d)
我希望在所有NaN都填满0的情况下获得以下结果。
ColX ColY
56.9 6.4
67.5 0
0 8.9
0 0
任何帮助将不胜感激。
答案 0 :(得分:1)
将combine_first
与pd.to_numeric()
一起使用:
经过测试(添加了额外的字符串列):
df['Colz']=['abc',np.nan,'def',np.nan]
print(df)
ColX ColY Colz
0 56.9 6.4 abc
1 67.5 NaN NaN
2 NaN 8,9 def
3 NaN NaN NaN
df.combine_first(df.apply(lambda x: \
pd.to_numeric(x,errors='coerce')).dropna(how='all',axis=1).fillna(0))
输出
ColX ColY Colz
0 56.9 6.4 abc
1 67.5 0 NaN
2 0.0 8,9 def
3 0.0 0 NaN
编辑,用于获取浮点dtype并填充NaN:
m=df.select_dtypes('float').columns
df.loc[:,m]=df.loc[:,m].fillna(0)
print(df)
答案 1 :(得分:0)
使用df.select_dtype()
# fillna to float64 columns
ts = df.select_dtypes(include=['float64']).fillna(0)
# merge data
df.join(ts, lsuffix="_").reindex(df.columns, axis=1)
答案 2 :(得分:0)
IIUC,
ObservableCollection<Libreria> items = new ObservableCollection<Libreria>(new Libreria().GetLibrerie());
public Home()
{
InitializeComponent ();
lstLibrerie.ItemsSource = items;
//pickerLibrerie.ItemsSource = new Libreria().GetLibrerie();
}
public void Reload(Libreria newLib)
{
items.Insert(0, newLib);
}