问题:pd.DataFrame()是否支持生成器(带yield的函数)的迭代?
- 现象1
def test_df(NList):
au = da = 0
me = []
# me = 0
message_start = False
for ii in Nlist:
if ii%4==0:
if au != 0:
yield au, da, me
me = [n for n in me]
# au = [n for n in me]
message_start = False
elif ii%4==1:
au = ii
elif ii%4==2:
da = ii
message_start = True
elif message_start:
me.append(ii)
# me = ii
import pandas as pd
Nlist = range(40)
df = pd.DataFrame(test_df(Nlist), columns=['au', 'da', 'me'])
print (df)
- 现象2
def test_df(NList):
au = da = 0
me = []
# me = 0
message_start = False
for ii in Nlist:
if ii%4==0:
if au != 0:
yield au, da, me
# me = [n for n in me]
# au = [n for n in me]
message_start = False
elif ii%4==1:
au = ii
elif ii%4==2:
da = ii
message_start = True
elif message_start:
me.append(ii)
# me = ii
import pandas as pd
Nlist = range(40)
df = pd.DataFrame(test_df(Nlist), columns=['au', 'da', 'me'])
print (df)
- 现象3
def test_df(NList):
au = da = 0
me = []
# me = 0
message_start = False
for ii in Nlist:
if ii%4==0:
if au != 0:
yield au, da, me
# me = [n for n in me]
# au = [n for n in me]
message_start = False
elif ii%4==1:
au = ii
elif ii%4==2:
da = ii
message_start = True
elif message_start:
# me.append(ii)
me = ii
import pandas as pd
Nlist = range(40)
df = pd.DataFrame(test_df(Nlist), columns=['au', 'da', 'me'])
print (df)
希望大佬们指点迷津!!!