pandas 我如何在另一个df行下追加panda Dataframe 行

mwkjh3gx  于 2023-01-19  发布在  其他
关注(0)|答案(1)|浏览(152)

我有两个Pandas Dataframe ,一个df有id列,另一个df有我想添加df1的值。

    • 第一批:**

| 身份证|色谱柱A|B栏|
| - ------|- ------|- ------|
| 1个|红色|玫瑰|
| 第二章|蓝色|玫瑰|
| 三个|黄色|玫瑰|

    • 第二季度**

| 身份证|色谱柱A|B栏|
| - ------|- ------|- ------|
| 零|绿色|汽车|
| 零|灰色|汽车|
我想要到append df2值到df1但是我需要到append数据为所有的id号码.

    • 我尝试获取的输出:**

| 身份证|色谱柱A|B栏|
| - ------|- ------|- ------|
| 1个|红色|玫瑰|
| 1个|绿色|汽车|
| 1个|灰色|汽车|
| 第二章|蓝色|玫瑰|
| 第二章|绿色|汽车|
| 第二章|灰色|汽车|
| 三个|黄色|玫瑰|
| 三个|绿色|汽车|
| 三个|灰色|汽车|
我尝试使用for和if else语句,但我坚持了下来

kse8i1jr

kse8i1jr1#

您可以尝试将第一个 Dataframe 中的ID与第二个 Dataframe 交叉应用,然后连接结果:

data = [[1,'red',   'rose'], [2,'blue', 'rose'], [3,'yellow', 'rose']]
df = pd.DataFrame(data, columns=["id", "Column A", "Column B"])

data1 = [['green', 'car' ],['grey','car']]
df1 = pd.DataFrame(data1, columns=["Column A", "Column B"])

pd.concat([df, df[['id']].merge(df1, how='cross')])

请注意,如果df1中的某个id已经将数据作为df2中的一行,则这将包含重复项。
输出:
| 身份证|色谱柱A|B栏|
| - ------|- ------|- ------|
| 1个|红色|玫瑰|
| 第二章|蓝色|玫瑰|
| 三个|黄色|玫瑰|
| 1个|绿色|汽车|
| 1个|灰色|汽车|
| 第二章|绿色|汽车|
| 第二章|灰色|汽车|
| 三个|绿色|汽车|
| 三个|灰色|汽车|

相关问题