我想从标准输入读取一个CSV文件并处理每一行.我的CSV输出代码逐个写入行,但我的读者在迭代行之前等待流终止.这是csv模块的限制吗?难道我做错了什么?
我的读者代码:
import csv
import sys
import time
reader = csv.reader(sys.stdin)
for row in reader:
print "Read: (%s) %r" % (time.time(), row)
Run Code Online (Sandbox Code Playgroud)
我的作家代码:
import csv
import sys
import time
writer = csv.writer(sys.stdout)
for i in range(8):
writer.writerow(["R%d" % i, "$" * (i+1)])
sys.stdout.flush()
time.sleep(0.5)
Run Code Online (Sandbox Code Playgroud)
产量python test_writer.py | python test_reader.py:
Read: (1309597426.3) ['R0', '$']
Read: (1309597426.3) ['R1', '$$']
Read: (1309597426.3) ['R2', '$$$']
Read: (1309597426.3) ['R3', '$$$$']
Read: (1309597426.3) ['R4', '$$$$$']
Read: (1309597426.3) ['R5', '$$$$$$']
Read: (1309597426.3) ['R6', …Run Code Online (Sandbox Code Playgroud) 我有大约700万行,HDFStore超过60列.数据超出了我的记忆能力.我希望根据列"A"的值将数据聚合成组.pandas 拆分/聚合/组合的文档假定我已经拥有了所有数据DataFrame,但是我无法将整个存储读入内存中DataFrame.将数据分组的正确方法是HDFStore什么?
我有一个非常大的CSV文件(几十牡蛎)含有网络日志有以下的列:user_id,time_stamp,category_clicked。我必须建立一个评分器来确定用户喜欢和不喜欢的类别。请注意,我有超过 1000 万用户。
我第一次把它切成块,并把它们存储在一个HDFStore名为input.h5然后我用groupby在user_id以下杰夫的方式。
这是我的数据:大约 2 亿行,1000 万个唯一 user_id。
user id | timestamp | category_clicked
20140512081646222000004-927168801|20140722|7
20140512081714121000004-383009763|20140727|4
201405011348508050000041009490586|20140728|1
20140512081646222000004-927168801|20140724|1
20140501135024818000004-1623130763|20140728|3
Run Code Online (Sandbox Code Playgroud)
这是我的 pandas.show_version():
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.6.final.0
python-bits: 64
OS: Windows
OS-release: 8
machine: AMD64
processor: AMD64 Family 21 Model 2 Stepping 0, AuthenticAMD
byteorder: little
LC_ALL: None
LANG: fr_FR
pandas: 0.13.1
Cython: 0.20.1
numpy: 1.8.1
scipy: 0.13.3
statsmodels: 0.5.0
IPython: 2.0.0 …Run Code Online (Sandbox Code Playgroud)