【问题标题】:Reading file with panda, then using for loop用熊猫读取文件,然后使用for循环
【发布时间】:2016-04-17 01:19:03
【问题描述】:

我正在尝试读取包含数十万行的大型文本文件,以使其运行更快带有熊猫文件的循环。 Lmk 如果有一个程序这样做是合乎逻辑的,以试图缩短运行时间。谢谢..

df1 = pd.read_csv('FILENAME1',sep=',',error_bad_lines=False)
df2 = pd.read_csv('FILENAME2',sep=',',error_bad_lines=False)
for index, row in df1.iterrows():
    for index2, row2 in df2.iterrows():
        if index[1]==row2[2] and index[0]==row2[1]:
            print "this info matches"

【问题讨论】:

  • 你想达到什么目的?您能否还以文本形式和所需的输出/结果集发布每个数据集的示例数据集(5-7 行)?
  • 使用数据框的目的是不必循环。看看这个链接。比较相似的数据框。 stackoverflow.com/questions/20225110/…

标签: python for-loop pandas cpu-speed


【解决方案1】:

在我看来,如果运行时很重要并且您只需要进行代码中显示的计算,请不要使用 pandas。 Pandas 将花费额外的周期来设置自己、进行数据清理等。

【讨论】:

  • 考虑到 OP 将使用“数十万行”,我不能同意这一点。与 pandas 方法相比,循环的循环很可能会更慢......
  • 我相信 OP 你的意思是 open()。如果是这种情况,那么即使是 pandas 也必须打开文件,读取每一行并另外执行自己的操作以以正确的格式保存。它可能会不必要地检查每个数据的有效性并在需要时对其进行转换。最后,如果程序员打算只使用一行中的 1 或 2 个项目,那么我们为什么要浪费周期来清理其他东西
  • OP 表示Original Poster
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多