[英]Fill a dataframe with the output of a loop
我正在嘗試將循環的輸出連接到數據幀中。 這個例子是完全不切實際的,只是為了展示我的問題、我的錯誤和我需要的結果。
for a in range(1,4):
list1 = ["22", "23", "24", "25"]
list2 = ["a", "b", "c", "d"]
df = pd.DataFrame({'Num': list1,'Alpha': list2})
print(df)
我的輸出:
良好的輸出
Num Alpha
0 22 a
1 23 b
2 24 c
3 25 d
4 22 a
5 23 b
6 24 c
7 25 d
8 22 a
9 23 b
10 24 c
11 25 d
這是使用上面的代碼執行此操作的一種方法。 在 for 循環之前創建一個空列表並將 df 附加到它。 然后連接最終列表。
l = []
for a in range(1,4):
list1 = ["22", "23", "24", "25"]
list2 = ["a", "b", "c", "d"]
df = pd.DataFrame({'Num': list1,'Alpha': list2})
l.append(df)
df = pd.concat(l)
將pd.concat
與*3
一起使用,而不是在 3 范圍內循環:
import pandas as pd
list1 = ["22", "23", "24", "25"]
list2 = ["a", "b", "c", "d"]
df = pd.concat([pd.DataFrame({'Num': list1,'Alpha': list2})] * 3).reset_index(drop=True)
df
Out[1]:
Num Alpha
0 22 a
1 23 b
2 24 c
3 25 d
4 22 a
5 23 b
6 24 c
7 25 d
8 22 a
9 23 b
10 24 c
11 25 d
你可以做
l = []
for a in range(1, 4):
list1 = ["22", "23", "24", "25"]
list2 = ["a", "b", "c", "d"]
l.append(pd.DataFrame({'Num': list1, 'Alpha': list2}))
out = pd.concat(l,ignore_index = True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.