[英]Storing & Adding Pandas DataFrame In A Loop
多虧了Generate_Dataframe函數,我有一個每次生成隨機結果的循環。 因此,名稱列保持不變,但我的“結果”列始終是不同的浮點值。
def Generate_Dataframe():
#Do Some Stuff
return DataFrame
我回來的例子是...
DataFrame
Name 1 Name 2 Result
Joe Smith 5.5
Jake Smith 4.5
Jim Smith 2.5
Joanne Smith 1.5
因此,當我運行循環時,我正在生成類似上面的數據幀,因此我希望每次都能更新/添加Result列。
for x in range(1,5):
New_DataFrame = Generate_DataFrame()
我一直無法找到一種存儲數據框的方法。 優化速度會很棒。 提前致謝!
IIUC您正在使用name
列(如索引)。 您應該將它們放在此處,然后更新/添加變得微不足道。
def gen_df():
midx = pd.MultiIndex.from_tuples([
('Joe', 'Smith'),
('Jake', 'Smith'),
('Jim', 'Smith'),
('Joanne', 'Smith')
], names=['Name 1', 'Name 2'])
return pd.DataFrame(
dict(Result=np.random.rand(4)),
midx
)
選項1
您不必這樣做。 但這就是我要做的:
from functools import reduce
reduce(pd.DataFrame.add, (gen_df() for _ in range(1, 5)))
Result
Name 1 Name 2
Joe Smith 2.400550
Jake Smith 2.222812
Jim Smith 2.601639
Joanne Smith 0.503774
選項2
循環中
df = gen_df()
for _ in range(1, 5):
df += gen_df()
df
Result
Name 1 Name 2
Joe Smith 1.998055
Jake Smith 2.268697
Jim Smith 2.815204
Joanne Smith 2.253301
如果要存儲數據框,我認為最好的方法是保存到pickle / csv文件中。 df.to_pickle(FILE_NAME)/df.to_csv(FILE_NAME)
您可以閱讀: 如何使用Pandas存儲數據框
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.