Python中文
首页
教程
问答
标签
搜索
登录
注册
python中大数据集的有效条件验证
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个简单/平面的数据集,看起来像</p> <pre><code>columnA columnB columnC value1a value1b value1c value2a value2b value2c ... valueNa valueNb valueNc </code></pre> <p>虽然结构很简单,但它有几千万行深,我有50多列</p> <p>我需要验证行中的每个值是否符合某些格式要求。有些检查很简单(例如<code>isDecimal</code>、<code>isEmpty</code>、<code>isAllowedValue</code>等),但有些检查涉及对其他列的引用(例如<code>columnC</code>=<code>columnA</code>/<code>columnB</code>),有些检查涉及条件验证(例如,如果<code>columnC</code>=<code>x</code>,则<code>columnB</code>是否包含<code>y</code>)</p> <p>我一开始认为验证这些数据最有效的方法是将lambda函数应用于我的数据帧</p> <pre><code>df.apply(lambda x: validateCol(x), axis=1) </code></pre> <p>但这似乎无法支持我需要执行的全部条件验证(其中特定单元格验证需要引用其他列中的其他单元格)</p> <p>实现这一点的最有效方法是简单地逐个循环所有行并逐个检查每个单元格吗?目前,我正在求助于此,但这需要几分钟来完成列表</p> <pre><code>df.columns = ['columnA','columnB','columnC'] myList = df.T.to_dict().values() #much faster to iterate over list for row in myList: #validate(row['columnA'], row['columnB'], row['columnC']) </code></pre> <p>感谢您对最有效的方法的任何想法。目前,我的解决方案是可行的,但它让人感觉又丑又慢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>另一种方法是<em>将</em>数据集分割成更小的部分并并行计算。 对于验证部分、类型或模式,我建议使用<a href="https://pypi.org/project/voluptuous/" rel="nofollow noreferrer">voluptuous</a>或其他库,我发现一种模式非常易于维护。 总之,正如@jerome所说,向量方法可以节省大量计算时间</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
尽管Python中的所有内容都是引用,为什么Python导师在没有指针的列表中绘制字符串和整数?
6 回答
尽管python中的表达式为false,但循环仍在运行
6 回答
尽管python代码正确,但从nifi ExecuteScript处理器获取语法错误
1 回答
尽管Python在Neovim中工作得很好,但插件不能识别Neovim中的Python主机
5 回答
尽管python字典包含了大量的条目,但它并没有增长
6 回答
尽管python说模块存在,为什么我会得到这个消息?
5 回答
尽管setuptools和控制盘是最新的,但无法识别singleversionexternallymanaged
3 回答
尽管stdout和stderr重定向,但未捕获错误消息
10 回答
尽管Tensorboard的事件太大,但Tensorboard的步骤太少了
7 回答
尽管tkinter上的变量已更改,但显示未更改
6 回答
尽管try/except使用Python进行单元测试时出现断言错误
6 回答
尽管URL是sam,但仍会抛出“达到最大重定向”
8 回答
尽管url有效,Pandas仍读取url的\u csv错误
10 回答
尽管while中存在时间延迟,但LINUX线程的CPU利用率为100%(1)
7 回答
尽管x0在范围内,Scipy优化仍会引发ValueError
3 回答
尽管xpath正确,但使用selenium单击链接仍不起作用
9 回答
尽管下载了ffmpeg并设置了路径变量python,但没有后端错误
10 回答
尽管下载了i,但找不到型号“fr”
7 回答
尽管下载了plotnine包,但未获取名为“plotnine”的模块时出错
4 回答
尽管为所有行指定了权重,网格(0)仍不起作用
1 回答