我有一个多列的数据框架,有几列是NaN。dataframe相当大,大约有5000列。以下是其中的一个示例:
GeoCode ESP FIN USA EZ19 PRT
1 Geography Spain Finland USA EZ Portugal
2 31-Mar-15 NaN NaN 0.26 0.89 NaN
3 30-Jun-15 NaN NaN NaN 0.90 NaN
4 30-Sep-15 NaN NaN 0.31 0.90 NaN
5 31-Dec-15 NaN NaN 0.41 0.91 NaN
我想将列“EZ19”的值复制到所有列,其中第2行及以下的所有值都是NaN。我尝试了以下代码,它可以工作:
nan_cols = df.columns[df_macro[2:].isnull().all()].to_list()
for c in nan_cols:
df.loc[2:,c]= df.loc[2:,'EZ19']
但我认为应该有一种方法可以在不使用循环的情况下将列“EZ19”的值分配给目标列,而且我很惊讶,似乎没有一种直接的方法来实现这一点。这里的其他问题似乎无法解决我遇到的问题,也找不到适合我的解决方案
考虑到我的数据帧的大小(预计随着时间的推移,它会越来越大),我真的希望避免在我的最终代码中使用循环,因此对此的任何帮助都将不胜感激
用EZ19中的值替换行中所有空值的简单oneliner:
输出:
不确定这是否是您的想法:
仅从第2行向下填充完全空的行
USA
从第2行开始不是完全空的,这就是它没有被更改的原因如果您对替换包含所有空值的列的值感兴趣,您可以使用快捷方式,在确定第2行下面的所有值完全为空后,只需覆盖这些值
相关问题 更多 >
编程相关推荐