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

如何在Python Pandas中用列值设置列名并处理空值

解决方案

简化实现代码

针对你的需求,我们可以用pandas库快速完成转换,代码逻辑清晰,适合新手理解:

import pandas as pd

# 还原你提供的原始DataFrame
data = [
    ["0: 2", "57: 9", None, "436: 77", "11469: 1018", "203: 44"],
    ["0: 0", "57: 15", None, "436: 47", None, "203: 89"],
    ["0: 45", "57: 0", "11469: 1116", "436: 7", None, "203: 0"],
    ["0: 1", "57: 23", None, "436: 0", "11469: 18", None],
    ["0: 23", "57: 5", None, "436: 63", None, "203: 4"]
]
df = pd.DataFrame(data)

# 1. 生成新列名:提取每列第一个非空值的米数
new_col_names = []
for col in df.columns:
    non_null_vals = df[col].dropna()
    # 取该列第一个非空值拆分出米数,整列空则默认设为0
    meter = non_null_vals.iloc[0].split(": ")[0] if not non_null_vals.empty else "0"
    new_col_names.append(meter)

# 2. 转换单元格值:None替换为0,非空值提取秒数转整数
result_df = df.applymap(lambda cell: int(cell.split(": ")[1]) if cell is not None else 0)

# 3. 替换为新列名
result_df.columns = new_col_names

# 查看最终结果
print(result_df)

代码说明

  1. 构造原始数据:将你提供的表格内容转换成pandas可处理的DataFrame格式。
  2. 生成新列名:遍历每一列,提取第一个非空单元格中的米数作为该列的新名称。
  3. 转换单元格值:遍历所有单元格,None直接替换为0,非空值拆分字符串提取秒数并转为整数。
  4. 替换列名:把生成的米数列名赋值给结果DataFrame,完成格式转换。

运行代码后,输出结果将完全匹配你期望的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:06:40