如何使用Concat联合Pandas DataFrames?

2021年9月19日23:26:59 发表评论 67 次浏览

你可以使用Concat联合Pandas DataFrames:

pd.concat([df1, df2])

你可以通过在括号内添加额外的 DataFrame 来连接它们。

如何联合Pandas DataFrames?在下一节中,你将看到一个示例,其中包含使用 contact 合并 Pandas DataFrames 的步骤。

使用Concat联合Pandas DataFrames的步骤

第 1 步:创建第一个 DataFrame

例如,假设你有以下有关客户的数据:

clientFirstNameclientLastNamecountry
JonSmithUS
MariaLamCanada
BruceJonesItaly
LiliChangChina

然后,你可以创建一个 DataFrame来在 Python 中捕获上述数据:

import pandas as pd

clients1 = {'clientFirstName': ['Jon','Maria','Bruce','Lili'],
            'clientLastName': ['Smith','Lam','Jones','Chang'],
            'country': ['US','Canada','Italy','China']
           }

df1 = pd.DataFrame(clients1, columns= ['clientFirstName', 'clientLastName','country'])

print (df1)

用 Python 运行代码,你会得到:

如何使用Concat联合Pandas DataFrames?

第 2 步:创建第二个 DataFrame

现在假设你获得了有关新客户的附加数据:

clientFirstNameclientLastNamecountry
BillJacksonUK
JackGreenGermany
ElizabethGrossBrazil
JennySingJapan

然后,你可以创建第二个 DataFrame,如下所示:

import pandas as pd

clients2 = {'clientFirstName': ['Bill','Jack','Elizabeth','Jenny'],
            'clientLastName': ['Jackson','Green','Gross','Sing'],
            'country': ['UK','Germany','Brazil','Japan']
           }

df2 = pd.DataFrame(clients2, columns= ['clientFirstName', 'clientLastName','country'])

print (df2)

运行代码,你会看到:

如何使用Concat联合Pandas DataFrames?

你的目标是联盟这两个DataFrames在一起。然后,你可以使用 Pandas concat来实现此目标。

第 3 步:使用 Concat 联合 Pandas DataFrame

最后,要将两个 Pandas DataFrame 结合在一起,你可以应用你在本指南开头看到的通用语法:

pd.concat([df1, df2])

这是使用Concat联合Pandas DataFrames的完整 Python 代码,Concat联合Pandas DataFrames的示例如下:

import pandas as pd

clients1 = {'clientFirstName': ['Jon','Maria','Bruce','Lili'],
            'clientLastName': ['Smith','Lam','Jones','Chang'],
            'country': ['US','Canada','Italy','China']
           }

df1 = pd.DataFrame(clients1, columns= ['clientFirstName', 'clientLastName','country'])


clients2 = {'clientFirstName': ['Bill','Jack','Elizabeth','Jenny'],
            'clientLastName': ['Jackson','Green','Gross','Sing'],
            'country': ['UK','Germany','Brazil','Japan']
           }

df2 = pd.DataFrame(clients2, columns= ['clientFirstName', 'clientLastName','country'])

union = pd.concat([df1, df2])
print (union)

运行代码后,你将获得连接的 DataFrame:

如何使用Concat联合Pandas DataFrames?

请注意,索引值不断重复(第一个 DataFrame 从 0 到 3,然后第二个 DataFrame 从 0 到 3):

如何使用Concat联合Pandas DataFrames?

一旦你连接了两个数据帧,你就可以选择以增量方式分配索引值。

为此,只需 在pd.concat括号内设置ignore_index=True,Concat联合Pandas DataFrames的示例如下:

import pandas as pd

clients1 = {'clientFirstName': ['Jon','Maria','Bruce','Lili'],
            'clientLastName': ['Smith','Lam','Jones','Chang'],
            'country': ['US','Canada','Italy','China']
           }

df1 = pd.DataFrame(clients1, columns= ['clientFirstName', 'clientLastName','country'])


clients2 = {'clientFirstName': ['Bill','Jack','Elizabeth','Jenny'],
            'clientLastName': ['Jackson','Green','Gross','Sing'],
            'country': ['UK','Germany','Brazil','Japan']
           }

df2 = pd.DataFrame(clients2, columns= ['clientFirstName', 'clientLastName','country'])

union = pd.concat([df1, df2], ignore_index=True)
print (union)

结果:

如何使用Concat联合Pandas DataFrames?

如何联合Pandas DataFrames?就是这样!即使你有 2 个以上的 DataFrame,你刚刚看到的上述方法也能正常工作。请注意,你需要在所有 DataFrame 中保持相同的列名以避免任何NaN 值。

有关连接 DataFrame 的更多信息,请访问 Pandas.concat文档。

你可能还想查看以下教程,该教程解释了如何使用 Pandas 连接列值。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: