python - 根据条件为列名添加后缀
问题描述
我想将前缀“_nan”添加到全是 nan 的列中。我有以下代码可以打印我想要的内容,但不会重新分配实际数据框中的列,我不知道为什么。有谁知道为什么会这样?提前致谢
df = pd.DataFrame({ 'a':[1, 0, 0, 0],
'b':[np.nan, np.nan, np.nan, np.nan],
'c':[np.nan, np.nan, np.nan, np.nan]})
a = df.loc[:,df.isna().all()].columns
df[[*a]] = df[[*a]].add_suffix('_nan')
解决方案
您可以使用列表理解:
df.columns = [x + '_nan' if df[x].isna().all() else x for x in df.columns]
输出:
a b_nan c_nan
0 1 NaN NaN
1 0 NaN NaN
2 0 NaN NaN
3 0 NaN NaN
推荐阅读
- javascript - how function numberIterator
- c++ - 发送矢量的最快方法是什么
> 从 x86 平台中创建的一个进程到 x64 中构建的另一个进程 - java - 使代码在执行的操作中从同一位置继续
- microsoft-cognitive - 从图像存储中匹配图像的认知服务?
- javascript - Terminate a function whenever it is executed - Javascript
- c# - asp.net core 2.0 模型验证不验证数据
- java - 使用 Java 中的 Geotools 检索 WFS 地图内容
- r - 使用 R/plotly 在轴标题中写入符号摄氏度
- javascript - 从克隆的 React 组件中删除一个道具
- php - preg_match - text between closing and opening tag