pandas Python)如何复制一行并将其粘贴到另一个 Dataframe 中的所有行

wecizke3  于 2022-12-02  发布在  Python
关注(0)|答案(1)|浏览(872)

如何提取特定行并将其粘贴到另一个 Dataframe 中的所有行?
例如,当我有两个 Dataframe 如下:

df1={'category': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']}
df1=pd.DataFrame(df1)

df2={'value 1': [1, 1, 2, 5, 3, 4, 4, 8, 7],
    'value 2': [4, 2, 8, 5, 7, 9, 3, 4, 2]}
df2=pd.DataFrame(df2)

df1
#  category
#0        A
#1        B
#2        C
#3        D
#4        E
#5        F
#6        G
#7        H
#8        I

df2
#   value 1  value 2
#0        1        4
#1        1        2
#2        2        8

我想将第四行复制到df1中的所有行

df3
#  category   value 1  value 2
#0        A        1        2
#1        B        1        2
#2        C        1        2
#3        D        1        2
#4        E        1        2
#5        F        1        2
#6        G        1        2
#7        H        1        2
#8        I        1        2

感谢Axe319,我更改了注解中的代码。
但我的检查结果却出乎意料。

df3 = pd.concat([df1, df2.apply(lambda _: df2.iloc[1], axis=1)], axis=1)

df3
#  category  value 1  value 2
#0        A      1.0      2.0
#1        B      1.0      2.0
#2        C      1.0      2.0
#3        D      NaN      NaN
#4        E      NaN      NaN
#5        F      NaN      NaN
#6        G      NaN      NaN
#7        H      NaN      NaN
#8        I      NaN      NaN

我猜想它只根据df2中的行数填充,但我无法理解这种情况。

t3psigkw

t3psigkw1#

示例#1:创建两个数据框,并将第二个附加到第一个。

# Importing pandas as pd
import pandas as pd

# Creating the first Dataframe using dictionary
df1 = df = pd.DataFrame({"a":[1, 2, 3, 4],
                    "b":[5, 6, 7, 8]})

# Creating the Second Dataframe using dictionary
df2 = pd.DataFrame({"a":[1, 2, 3],
                "b":[5, 6, 7]})

# Print df1
print(df1, "\n")

# Print df2
df2

输出:enter link description here
enter link description here
现在将df2附加到df1的末尾。

# to append df2 at the end of df1 dataframe
df1.append(df2)

输出:enter link description here
注意第二个数据框的索引值会保留在附加的数据框中。如果我们不想这样做,可以设置ignore_index=True。

# A continuous index value will be maintained
# across the rows in the new appended data frame.
df1.append(df2, ignore_index = True)

输出:enter link description here

相关问题