2 回答

TA貢獻1772條經驗 獲得超8個贊
導致不需要的輸出的問題是由于您嘗試將 full 附加Pandas.DataFrame到Pandas.Serieswith 語句
df=Top['A'].append(d['-OE1x-'])
如果將此行更改為:
df = Top.append(d['-OE1x-'])
df看起來像這樣:
A
0 Hello
1 World
0 Appended Item-1x
您可能希望將ignore_index=True其作為參數傳遞給您的調用,Pandas.DataFrame.append()以便為包含的行提供順序索引 - 即不包含 的Appended Item-1x原始索引,因為這將導致索引為的兩行。00df
例如
df = Top.append(d['-OE1x-'], ignore_index=True)
將為您提供以下內容df:
A
0 Hello
1 World
2 Appended Item-1x
替代解決方案
由于您似乎實際上并沒有使用每個Pandas.DataFrameind除了將它們作為新行附加到現有數據幀之外,因此重構您的代碼可能是一個好主意,以便每個條目d看起來像str: str而不是str: Pandas.DataFrame. 使用您的原始代碼,您可以按如下方式實現此目的:
import pandas as pd
Top = pd.DataFrame({'A':['Hello', 'World']})
Frst = ['1','2']
Scnd = ['x','y']
d = { f'-OE{num1}{num2}-': f'Appended Item-{num1}{num2}' for num1 in Frst for num2 in Scnd }
df = Top.append({'A': d['-OE1x-']}, ignore_index=True)
這也將提供所需的df:
A
0 Hello
1 World
2 Appended Item-1x
然而,與之前提供的答案(以及您的原始代碼)不同,它占用的內存要少得多,因為d不會不必要地填充Pandas.DataFrame.

TA貢獻1828條經驗 獲得超13個贊
我認為只需將這些列表轉換為系列并附加就可以了。
代碼:
import pandas as pd
Top= pd.DataFrame({'A':['Hello', 'World']})
Frst=['1','2']
Scnd=['x','y']
l = (pd.Series(Frst), pd.Series(Scnd))
df = Top.A
for i in l:
df = df.append(i)
print(df)
輸出:
0 Hello
1 World
0 1
1 2
0 x
1 y
dtype: object
添加回答
舉報