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

在Pandas中对列求和(无科学计数法、无NaN)并加入DataFrame导出CSV

解决DataFrame添加汇总统计并导出CSV的问题

看来你已经搞定了基础的DataFrame,现在就差把下载量总和、总传输数据这两个统计结果加进去,还要处理NaN和避免科学计数法对吧?咱们一步一步来解决:

第一步:计算统计量(处理NaN+规避科学计数法)

首先计算总和时,要确保自动跳过NaN值(sum()默认已经开启skipna=True,明确写出来更清晰),同时为了避免科学计数法干扰,我们可以提前设置Pandas的显示规则,或者直接对结果做格式化:

import pandas as pd

# 全局设置:避免科学计数法,整数显示为整数值,浮点数保留2位小数
pd.set_option('display.float_format', lambda x: '%.0f' % x if x.is_integer() else '%.2f' % x)

# 计算下载量总和(自动跳过NaN)
total_downloads = df1['downloads'].sum(skipna=True)
# 计算总Size并转换为GB(如果按1000进制计算可以用10**9,按需选择)
total_size_gb = df1['Size'].sum(skipna=True) / (1024 ** 3)

第二步:把统计结果加入原DataFrame

我们可以构造一条汇总行,然后把它追加到原DataFrame的末尾:

# 构造汇总行的字典,标记清楚这是统计总行
summary_row = {
    'downloads': total_downloads,
    'url_info_hostname': 'Total',
    'date': '2018-03-01',  # 和原数据日期保持一致
    'Size': total_size_gb
}

# 把字典转成单个行的DataFrame
summary_df = pd.DataFrame([summary_row])

# 合并原DataFrame和汇总行,重置索引避免重复
df_with_summary = pd.concat([df1, summary_df], ignore_index=True)

第三步:导出带统计的CSV

导出时可以额外指定float_format,确保CSV文件里的数值不会出现科学计数法:

# 导出CSV,index=False不导出索引列,float_format控制浮点数值格式
df_with_summary.to_csv('download_stats.csv', index=False, float_format='%.2f')

额外小提示

如果不想修改全局显示格式,也可以在计算结果时直接格式化,比如把total_downloads转成整数(如果结果是整数的话),或者用f-string转成字符串,但这样会改变列的数据类型,按需选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:17:18