Python 通过for循环中的数据帧追加字符串

Python 通过for循环中的数据帧追加字符串,python,pandas,Python,Pandas,我有两个片段,它们给了我不同的输出。第一个代码段提供了所需的输出,但我想用第二个代码段复制相同的输出 片段1: Top= pd.DataFrame({'A':['Hello', 'World']}) insrt1= pd.DataFrame({'A': [f'Appended Item-1x']}) df=Top['A'].append(insrt1['A']) print(df) 输出: 由于for循环,第二个代码段产生不同的输出。如何实现与代码片段1相同的输出 片段2 Top= pd.

我有两个片段,它们给了我不同的输出。第一个代码段提供了所需的输出,但我想用第二个代码段复制相同的输出

片段1:

Top= pd.DataFrame({'A':['Hello', 'World']})

insrt1= pd.DataFrame({'A': [f'Appended Item-1x']})

df=Top['A'].append(insrt1['A'])
print(df)
输出:

由于for循环,第二个代码段产生不同的输出。如何实现与代码片段1相同的输出

片段2

Top= pd.DataFrame({'A':['Hello', 'World']})

Frst=['1','2']
Scnd=['x','y']

d={}

for num1 in Frst:
    for num2 in Scnd:
        key = f'-OE{num1}{num2}-'
        insrt2 = pd.DataFrame({'A': [f'Appended Item-{num1}{num2}']})
        d[key] = insrt2

df=Top['A'].append(d['-OE1x-'])
print(df)
输出:


我认为只要将这些列表转换为序列并附加就可以了

代码:

输出:

0    Hello
1    World
0        1
1        2
0        x
1        y
dtype: object

导致不希望的输出的问题来自这样一个事实:您正试图使用语句将完整的
Pandas.DataFrame
附加到
Pandas.Series

df=Top['A'].追加(d['-OE1x-']
如果将此行更改为:

df=Top.append(d['-OE1x-']
df
将如下所示:

A
0你好
1世界
0附加项-1x
您可能希望将
ignore_index=True
作为参数传递给对
Pandas.DataFrame.append()的调用
这样,包含
附加项-1x
的行被赋予一个顺序索引-即不包括
0
的原始索引,因为这将导致
df
中有两行索引
0

e、 g

df=Top.append(d['-OE1x-'],ignore_index=True)
将为您提供以下
df

                  A
0             Hello
1             World
2  Appended Item-1x
A
0你好
1世界
2附加项-1x
替代解决方案 由于在将
d
中的每个
Pandas.DataFrame
作为新行附加到现有的数据帧之外,您似乎没有实际使用它们,因此重构代码,使
d
中的每个条目看起来像
str:str
,而不是
str:Pandas.DataFrame
。使用您的原始代码,您可以实现以下目标:

将熊猫作为pd导入
Top=pd.DataFrame({'A':['Hello','World']})
Frst=['1','2']
Scnd=['x','y']
d={f'-OE{num1}{num2}-':f'第一次num1的附加项{num1}{num2}'对于Scnd中的num2}
追加({'A':d['-OE1x-']},忽略_index=True)
这也将提供所需的
df

                  A
0             Hello
1             World
2  Appended Item-1x

但是,与前面提供的答案(以及您的原始代码)不同,它将大大减少内存占用,因为
d
没有不必要地被
Pandas.DataFrame

的实例填充。您能否提供一个预期/预期输出的示例?预期输出如代码段1所示。我想用snippet 2复制它,您是否希望在列
A
具有值的行中追加
追加项-1x
…1y
…2x
…2y
?请在向他人寻求帮助时具体说明。否。我想要一列三行的内容,包括“Hello”第一个条目、“World”第二个条目和“Attended Item-1x”第三个条目,列名为“A”,我明白了,现在为您准备一个答案。@JP193。这两个答案都是你为我提供的工作。现在我遇到了另一个问题,我在原来的问题中没有包括这个问题的细节。它本质上是在“Append Item-1x”之后追加另一个数字数据帧。这是我真正的问题“df=TOP.Append({'a':d['-OE1x-']},ignore_index=True。)Append(df.loc[0]。Append more………`错误是
无法连接类型为“”的对象;只有Series和dataframe objs是有效的
0    Hello
1    World
0        1
1        2
0        x
1        y
dtype: object
                  A
0             Hello
1             World
2  Appended Item-1x