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问题
将Pandas数据帧转换为PyTorch张量?
2 回答
将Pandas数据帧转换为scipy稀疏矩阵
2 回答
将Pandas数据帧转换为Spark Datafram时出现问题
8 回答
将pandas数据帧转换为spark DataFram时出错
9 回答
将Pandas数据帧转换为spark datafram时收到错误
7 回答
将Pandas数据帧转换为Spark数据帧
9 回答
将Pandas数据帧转换为Tensorflow数据
3 回答
将Pandas数据帧转换为tkinter obj
2 回答
将pandas数据帧转换为XML
9 回答
将Pandas数据帧转换为值sql语句
4 回答
将pandas数据帧转换为元组
1 回答
将pandas数据帧转换为元组列表
9 回答
将pandas数据帧转换为元组列表并删除所有pandas数据类型
1 回答
将pandas数据帧转换为具有头和数据类型的numpy数组
8 回答
将pandas数据帧转换为内存中的拼花地板,并将其加载到Python中的Hadoop中
6 回答
将pandas数据帧转换为内存中类似文件的对象?
3 回答
将Pandas数据帧转换为内存功能(&F)
1 回答
将pandas数据帧转换为列表列表
1 回答
将pandas数据帧转换为列表列表以输入到RNN
6 回答
将Pandas数据帧转换为单行DataFram
7 回答