python-3.x - 如何在python中对用分号分隔的列值求和
问题描述
我有一个数据框,其值如下:
df = pd.DataFrame({'Column4': ['NaN;NaN;1;4','4;8','nan']} )
print (df)
Column4
0 NaN;NaN;1;4
1 4;8
2 nan
我尝试使用下面的代码来获得总和。
df['Sum'] = df['Column4'].apply(lambda x: sum(map(int, x.split(';'))))
我收到错误消息
ValueError:int() 的无效文字,基数为 10:'NaN'
解决方案
Series.str.split
与expand=True
for一起使用DataFrame
,转换为浮点数和sum
每行 - 默认情况下,熊猫排除缺失值:
df['Sum'] = df['Column4'].str.split(';', expand=True).astype(float).sum(axis=1)
print (df)
Column4 Sum
0 NaN;NaN;1;4 5.0
1 4;8 12.0
2 nan 0.0
你的解决方案应该改变:
f = lambda x: sum(int(y) for y in x.split(';') if not y in ('nan','NaN'))
df['Sum'] = df['Column4'].apply(f)
因为如果转换为浮点数,则使用另一个数字获取 NaN 的 mssing 值:
df['Sum'] = df['Column4'].apply(lambda x: sum(map(float, x.split(';'))))
print (df)
Column4 Sum
0 NaN;NaN;1;4 NaN
1 4;8 12.0
2 nan NaN
推荐阅读
- android - FCM 服务器端区分 iOS 和 Android
- regex - PowerShell 在特定字符串上滑动文本文件
- javascript - 如何使用 puppeteer 获取 oauth 访问令牌?
- javascript - 在 Three.js 中将 glTF 对象设置到不同层时遇到问题
- sql - T-SQL 改变字符串
- javascript - 如何获取路径未知的嵌套对象的值?
- ruby-on-rails - 如何从 Rails 应用程序连接到远程 mysql 服务器?
- sql - SQL:与平均值的百分比偏差
- python - CSV 文件 matplotlib.pyplot 绘图错误
- javascript - 是否可以使用 CSS 隐藏空行?
我刚开始学习 JavaScript 和 HTML5 的基础知识。我正在尝试创建一个食谱应用程序,用户可以在其中添加食谱。这些配方存储在一个数组中,并通过一个带有 for 循环的表循环。用户还可以编辑表格。主要功能之一应该是当表格的一行为空时,它会自动被删除。我尝试
display: none
与 CSS 一起使用,但它不起作用。这是我的表格 CSS: