Python中文
首页
教程
问答
标签
搜索
登录
注册
报告与另一列的第一个非零值和最后一个零值相对应的列值
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个如下所示的数据帧。我想扫描“Krg”列,找到与此列中最后一个零值相对应的行,并从此行报告“Sg”(0.03)。此外,我想报告与第一个非零值“Krg”(0.04)相对应的“Sg”。你知道吗</p> <p>我可以使用query()实现这一点-请参阅下面的代码。你知道吗</p> <pre class="lang-py prettyprint-override"><code>import pandas as pd col_labels = ['Sg', 'Krg', 'Krw', 'Pc'] df = pd.DataFrame(columns=col_labels) f = open('EPS.INC', 'r') for line in f: if 'SGWFN' in line: print('Reading relative permeability table') for line in f: line = line.strip() if (line.split() and not line.startswith('/') and not line.startswith('--')): cols = line.split() df=df.append(pd.Series(([float(i) for i in cols]), index=col_labels), ignore_index=True) print(df.loc[df.query('Krg != 0')['Krg'].idxmin(), 'Sg']) print(df.loc[(df.query('Krg != 0')['Krg'].idxmin())-1, 'Sg']) </code></pre> <pre><code> Sg Krg Krw Pc 0 0.00 0.000000 1.000000 0.000000 1 0.03 0.000000 0.500000 0.091233 2 0.04 0.000518 0.484212 0.093203 3 0.05 0.001624 0.468759 0.095237 4 0.06 0.003171 0.453639 0.097338 5 0.07 0.005098 0.438848 0.099508 6 0.08 0.007367 0.424382 0.101751 7 0.09 0.009953 0.410237 0.104070 8 0.10 0.012835 0.396410 0.106469 9 0.11 0.015999 0.382897 0.108950 10 0.12 0.019431 0.369695 0.111518 </code></pre> <p>代码似乎不太“潘多拉”,似乎很慢。有没有更聪明的方法来获得这些“Sg”值?你知道吗</p> <p>干杯, D级</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我只是在使用idxmax,并试图加快您原来的职位</p> <pre><code>s=df.query('Krg != 0')['Krg'].idxmin()# here you only need run idxmax once not twice print(df.loc[s, 'Sg']) print(df.loc[s-1, 'Sg']) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何合并多个PDF文件?
8 回答
如何合并多个xarray数据变量及其坐标?
2 回答
如何合并多个列中具有重复值的行
9 回答
如何合并多个唯一id
7 回答
如何合并多个图纸并使用图纸名称的名称重命名列名?
7 回答
如何合并多个字典并添加同一个键的值?(Python)
3 回答
如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?
4 回答
如何合并多个数据帧
7 回答
如何合并多个数据帧并使用Pandas为假人添加列?
8 回答
如何合并多个数据帧并按时间戳排序
5 回答
如何合并多个数据帧的列表并用另一个lis标记每列
6 回答
如何合并多个数据框中的列
2 回答
如何合并多个文件?
5 回答
如何合并多个查询集?
4 回答
如何合并多个绘图?
4 回答
如何合并多个词典
10 回答
如何合并多个输入数据集(数据帧)?
2 回答
如何合并多条记录中拆分的文本行
1 回答
如何合并多索引列datafram
9 回答
如何合并多级(即多索引)数据帧?
2 回答