Python如何重构无空白单元格的DataFrame 不删除整行整列
实现方法
你需要的效果是将每列的非空值按原有顺序移动到列顶部,剩余位置留空,pandas没有对应内置函数,几行代码即可实现:
- 如果你数据中的空白是空白字符串而非
NaN,先统一转成NaN格式:
import pandas as pd import numpy as np # 替换空字符串为NaN df = df.replace('', np.nan)
- 对每列单独处理,取出非空值后重新对齐原DataFrame的行长度:
# 核心处理逻辑 df_processed = df.apply(lambda col: pd.Series(col.dropna().values), axis=0)
效果说明
上述代码会保留原DataFrame的行、列数量不变,仅将每列的非空值按原始出现顺序上浮到列的开头,空白单元格全部沉到每列的底部,完全匹配你需要的重构效果。
内容的提问来源于stack exchange,提问作者Always_stuck
相关产品推荐
相关产品推荐

