Python 将dataframe与列值匹配相结合

Python 将dataframe与列值匹配相结合,python,pandas,Python,Pandas,如何使用python代码获得低于预期的结果 [DF1][DF2] **名称****配置****名称** MD0001 2G MD0001 MD0002 3G MD0001 MD0003 4G MD0001 MD0002 MD0002 MD0003 MD0003 MD0003 预期结果: 名称配置 MD0001 2G MD0001 2G MD0001 2G MD0002 3G MD0002 3G MD0003 4G MD0003 4G MD0003 4G 以下是我目前的代码: data_xls

如何使用python代码获得低于预期的结果

[DF1][DF2]
**名称****配置****名称**
MD0001 2G MD0001
MD0002 3G MD0001
MD0003 4G MD0001
MD0002
MD0002
MD0003
MD0003
MD0003
预期结果:

名称配置
MD0001 2G
MD0001 2G
MD0001 2G
MD0002 3G
MD0002 3G
MD0003 4G
MD0003 4G
MD0003 4G
以下是我目前的代码:

data_xlsx = pd.read_excel(data,skiprows=1,sheet_name='KPI')
new_xlsx = pd.read_excel(new, skiprows=1,sheet_name='KPI')
data_df = pd.Dataframe[data_xlsx ]
new_xlsx = pd.Dataframe[new_xlsx ]

您应该使用合并或联接。这是pandas实现类似SQL的连接的方法

# mock up the test dataframes
df1 = pd.DataFrame.from_records(
    columns=["Name", "Configure"],
    data = [
        ("MD0001", "2G"),
        ("MD0002", "3G"),
        ("MD0003", "4G")
    ]
)

df2 = pd.DataFrame.from_records(
    columns = ["Name"],
    data = [
        ("MD0001",),
        ("MD0001",),
        ("MD0001",),
        ("MD0002",),
        ("MD0002",),
        ("MD0003",),
        ("MD0003",),
        ("MD0003",)
    ]
)

# index df1 on Name
df1 = df1.set_index("Name")

# then join it to df2
df2.join(df1['Configure'], on="Name")
输出:

    Name    Configure
0   MD0001  2G
1   MD0001  2G
2   MD0001  2G
3   MD0002  3G
4   MD0002  3G
5   MD0003  4G
6   MD0003  4G
7   MD0003  4G

到目前为止,你能分享你的代码吗?data\u xlsx=pd.read\u excel(data,skiprows=1,sheet\u name='KPI')new\u xlsx=pd.read\u excel(new,skiprows=1,sheet\u name='KPI')data\u df=pd.Dataframe[data\u xlsx]new\u xlsx=pd.Dataframe[new\u xlsx]那么我不知道下一步该怎么做。谢谢你的回复,如果第二列标题名不是“name”呢。您可以通过修改最后一行中联接方法的“on”参数来指定要“联接”的列。