You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas批量处理DataFrame每行删除NaN转Series及DataFrame的实现方法

解决方案

你可以通过遍历DataFrame的行批量完成处理,推荐优先将所有处理结果存入字典统一管理,避免污染全局变量空间,代码如下:

import pandas as pd
import numpy as np

# 你的原始DataFrame构造代码
data = {'card_name': ['Diamonds', 'Clovers', 'HorseShoe'], '$20': [1000.0, 10.0, np.nan], '$25': [500.0, np.nan, 1873.0], '$30': [25, 213, 4657], '$40': [np.nan, 2199.0, np.nan], '$50': [1500.0, np.nan, 344.0], '$70': [np.nan, 43.0, 239.0], '$75': [30.0, 2.0, np.nan], '$100': [1.0, np.nan, 748.0]}
df = pd.DataFrame(data)

# 批量处理核心代码
card_result = {}
for _, row in df.iterrows():
    card_name = row['card_name']
    # 执行和单条处理完全一致的逻辑:删NaN→转DataFrame
    card_result[card_name] = row.dropna().to_frame()

使用时直接通过卡片名取对应结果即可,和你之前单独写代码得到的输出完全一致:

# 调用示例
print(card_result['Diamonds'])
print(card_result['Clovers'])
print(card_result['HorseShoe'])

如果你确实需要直接用Diamonds/Clovers这类变量名直接访问处理结果,可以用动态赋值的方式实现(不推荐,容易造成变量冲突):

for _, row in df.iterrows():
    card_name = row['card_name']
    globals()[card_name] = row.dropna().to_frame()

# 直接访问变量
print(Diamonds)

内容的提问来源于stack exchange,提问作者peoplet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:27:04