Python中文
首页
教程
问答
标签
搜索
登录
注册
由重叠的低部分和高部分组成的组合数
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有大约6-7位感兴趣的测量数据,但是由于它是在一个“粗糙”的环境中记录的,所以数据记录器非常原始(但很健壮),只能记录4位数字。因此,我将我的测量数据分为低部分和高部分,根据测量的数量,最多三位数字可能重叠,低部分的值优先。你知道吗</p> <p>例如,测量能量流(单位:kW):</p> <pre><code>P_real = 34.648 # actual value P_low = 4.648 # low part P_high = 34.6 # high part </code></pre> <p>所以在这种情况下,为了得到“真实的”能量流,我需要以某种方式组合这些数字。因为我有一个相当大的熊猫数据帧,其形状超过<code>(1000000, 150)</code>,所以必须避免转换为字符串并在正确的位置进行切片。你知道吗</p> <p>此外,数据中还包括<code>NaN</code>。这阻碍了整数转换,因此在“组合”部件之前还需要掩蔽。你知道吗</p> <p>一些示例数据:</p> <pre><code>ser_hi = pd.Series([34.4, np.nan, np.nan, 35.4, 36.5]) ser_lo = pd.Series([4.648, np.nan, 4.698, 5.498, 6.498]) </code></pre> <p>当前“变通”程序的预期输出:</p> <pre><code>mask_nan = ~(ser_hi.isna() | ser_lo.isna()) # mask for non-nan-values ser_real = pd.Series(index=ser_hi.index) # create series for masking the result # workaround calculation with masking to avoid nan-conversion error ser_real[mask_nan] = (ser_hi[mask_nan] / 10).astype(int) * 10 + ser_lo[mask_nan] print(ser_real) # Out: 0 34.648 1 NaN 2 NaN 3 35.498 4 36.498 dtype: float64 </code></pre> <p>有没有办法“简化”这种组合,只需“删除”指定位数之前/之后的数字?例如,我将两个字符串组合如下:</p> <pre><code>str_hi = '34.4' str_lo = '4.648' str_real = str_hi[:1] + str_lo </code></pre> <p>当然,对于float来说,字符串的性能非常糟糕。(即使性能还可以,我也不喜欢将数字数据转换成字符串再转换回数字数据。;))</p> <p>提前谢谢你的建议!你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>不确定它是否回答了您的问题,但是使用<code>np.trunc</code>而不是<code>astype(int)</code>应该可以解决<code>NaN</code>数据的问题</p> <pre><code>np.trunc(ser_hi / 10) * 10 + ser_lo 0 34.648 1 NaN 2 NaN 3 35.498 4 36.498 dtype: float64 </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django restfram生成PDF
9 回答
无法使用Django Rest框架发送压缩的gzip数据
1 回答
无法使用Django rest框架进行身份验证(请求用户=匿名用户)
4 回答
无法使用Django、Python和JavaScrip触发onclick函数
9 回答
无法使用Django.views.generic.View保存表单
7 回答
无法使用Django(python 2.7,OS X 10.11.1)
4 回答
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
3 回答
无法使用Django\u mssql\u后端迁移到外部hos
4 回答
无法使用Django&Python3.4连接到MySql
2 回答
无法使用Django+nginx上载媒体文件
2 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
7 回答
无法使用Djangockedi验证CBV中的字段
5 回答
无法使用Djangocketditor上载图像(错误400)
6 回答
无法使用Djangocron进行函数调用
7 回答
无法使用Djangofiler djang上载文件
1 回答
无法使用Djangokronos
6 回答
无法使用Djangomssql provid
4 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答