我使用pandas作为db替代品,因为我有多个数据库(oracle,mssql等),我无法为SQL等价物创建一系列命令.
我在DataFrame中加载了一些表,其中包含一些列:
YEARMONTH, CLIENTCODE, SIZE, .... etc etc
Run Code Online (Sandbox Code Playgroud)
在SQL中,要计算每年不同客户端的数量,请执行以下操作:
SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;
Run Code Online (Sandbox Code Playgroud)
结果就是
201301 5000
201302 13245
Run Code Online (Sandbox Code Playgroud)
我怎么能在熊猫中做到这一点?
我使用编码utf-8创建了一个包.
调用函数时,它返回一个DataFrame,其中的列以utf-8编码.
在命令行中使用IPython时,显示此表的内容时没有任何问题.使用Notebook时,它会因错误而崩溃'utf8' codec can't decode byte 0xe7.我在下面附上了一个完整的追溯.
使用Notebook的正确编码是什么?
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-13-92c0011919e7> in <module>()
3 ver = verif.VerificacaoNA()
4 comp, total = ver.executarCompRealFisica(DT_INI, DT_FIN)
----> 5 comp
c:\Python27-32\lib\site-packages\ipython-0.13.1-py2.7.egg\IPython\core\displayhook.pyc in __call__(self, result)
240 self.update_user_ns(result)
241 self.log_output(format_dict)
--> 242 self.finish_displayhook()
243
244 def flush(self):
c:\Python27-32\lib\site-packages\ipython-0.13.1-py2.7.egg\IPython\zmq\displayhook.pyc in finish_displayhook(self)
59 sys.stdout.flush()
60 sys.stderr.flush()
---> 61 self.session.send(self.pub_socket, self.msg, ident=self.topic)
62 self.msg = None
63
c:\Python27-32\lib\site-packages\ipython-0.13.1-py2.7.egg\IPython\zmq\session.pyc in send(self, stream, msg_or_type, content, parent, ident, buffers, subheader, track, header)
557 …Run Code Online (Sandbox Code Playgroud) 我无法将以下Unicode转换为ASCII而不会丢失数据:
u'ABRA\xc3O JOS\xc9'
Run Code Online (Sandbox Code Playgroud)
我试过了encode,decode他们不会这样做.
有没有人有建议?
根据Databricks的最佳实践,groupByKey应该避免使用Spark ,因为Spark groupByKey处理的工作方式是首先将信息拖放到工作人员之间,然后进行处理.说明
所以,我的问题是,有哪些替代方案能够groupByKey以分布式和快速的方式返回以下内容?
// want this
{"key1": "1", "key1": "2", "key1": "3", "key2": "55", "key2": "66"}
// to become this
{"key1": ["1","2","3"], "key2": ["55","66"]}
Run Code Online (Sandbox Code Playgroud)
在我看来,可能aggregateByKey或者glom可以先在partition(map)中执行,然后将所有列表连接在一起(reduce).
我试图在python中执行相当于以下命令:
test <- data.frame(convert_me=c('Convert1','Convert2','Convert3'),
values=rnorm(3,45, 12), age_col=c('23','33','44'))
test
library(reshape2)
t <- dcast(test, values ~ convert_me+age_col, length )
t
Run Code Online (Sandbox Code Playgroud)
就是这样:
convert_me values age_col
Convert1 21.71502 23
Convert2 58.35506 33
Convert3 60.41639 44
Run Code Online (Sandbox Code Playgroud)
成为这个:
values Convert2_33 Convert1_23 Convert3_44
21.71502 0 1 0
58.35506 1 0 0
60.41639 0 0 1
Run Code Online (Sandbox Code Playgroud)
我知道使用虚拟变量我可以得到列的值并转换为列的名称,但有没有办法轻松地合并它们(组合),就像R一样?
我试图在一个网站上使用聚合物项目,但我卡住了,无法找到文档的帮助.
如何使用纸制元件的点击?我在另一个stackoverflow帖子上看到使用属性on-tap =.我已经看过文档和代码,找不到任何说这个属性存在的地方.
我应该添加事件处理程序吗?这是聚合物的工作原理吗?
我的代码:
<!-- `keepCondensedHeader` makes the condensed header to not scroll away -->
<core-scroll-header-panel condenses keepCondensedHeader condensedHeaderHeight="80">
<core-toolbar>
<div flex></div>
<core-icon-button icon="thumb-up"></core-icon-button>
<paper-fab icon="account-circle" ></paper-fab>
<div class="bottom indent bottom-text" self-end>
<div>ME AVISE</div>
<div class="subtitle">Fique informado e economize</div>
</div>
</core-toolbar>
<div class="content">
<lorem-ipsum paragraphs="100"></lorem-ipsum>
</div>
</core-scroll-header-panel>
Run Code Online (Sandbox Code Playgroud) 我正在对Kaggle进行CIFAR挑战.
他们给了一个包含5万张图片的.7z文件作为火车.我花了1个小时解压缩它然后再花40分钟读取所有文件并将其放在内存中.
试图不创建50k文件,因为这是这个的瓶颈,我已经安装了pylzma和其他库,但所有这些都会告诉我该文件无效.
来自bash的7z可以正确读取文件,并列出文件.所以我使用Popen了解压缩所有文件并使用bash 7z程序将它放在内存中的字符串中
import subprocess
p = subprocess.Popen(["7z", "e", "-so", "awa.7z"], stdout=subprocess.PIPE).communicate()[0]
Run Code Online (Sandbox Code Playgroud)
我已经设法通过查看其大小,然后从字符串中获取适当的字节来单独获取每个文件
f1 = p[0][0:2105]
Run Code Online (Sandbox Code Playgroud)
我现在想要的是欺骗Python认为F1文件指针,这样我就可以调用skimage.io.imread并将它转换为适当的结构.或者也许只是将内存值传递给skimage,它会为我转换它.