簡體   English   中英

生成器的過濾值 object

[英]Filtering values from generator object

我有這個生成器類型數據。

type(head)
----------
generator

它的值看起來像這樣

for x in head:
    print(x)

  Record {
  field1         '2022060611121280041700000070046713963'
  field2         '2022-06-06 01:11:29'
  field3         'NIL'
  }

我在想是否可以將其轉換為數據框? 我或許可以創建一個腳本來循環記錄 Record 的內容,但我希望有一種更簡潔的方法。

只要生成的內容適合 memory,那么pandas就可以消費它:

from pandas import DataFrame

# head is a generator
df = DataFrame([x for x in head])

如果生成器的內容太大,那么您可以迭代數據塊(使用toolz )並存儲每個塊,例如存儲到csv

from pandas import DataFrame
from toolz import partition_all

n_elements = 100

for n, x in enumerate(partition_all(n_elements, head)):
    df = DataFrame(x)
    if n==0:
        df.to_csv('test.csv', index=False, mode='w')
    else:
        df.to_csv('test.csv', index=False, mode='a', header=False)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM