比较和更改不同数据帧中的列-Python/panda



我有两个文件,其中的列具有不同的长度,如下所示:

df2:  
N_Machine       x       y       z
0     CB-32   90.42  910.29   62.68
1     CB-27  985.65  995.54  669.62
2     CB-18  852.92  952.51  525.60
3     CB-43  950.92  906.64  618.59
df:
Name    Number
0   CB-15  12.55.47
1   CB-32  12.55.21
2   CB-91  12.55.75
3   CB-07  12.55.13
4   CB-22  12.55.14
5   CB-16  12.55.52
6   CB-43  12.55.49
7   CB-24  12.55.55
8   CB-17  12.55.31
9   CB-32  12.55.33
10  CB-38  12.55.19
11  CB-27  12.55.62
12  CB-51  12.55.23
13  CB-14  12.55.39
14  CB-31  12.55.65
15  CB-41  12.55.62
16  CB-20  12.55.70
17  CB-18  12.55.26
18  CB-10  12.55.44

我一直在做的是:尝试比较列df[‘Name’]和df2[‘N_ Machine’]。如果它们相等,df2['N_Machine']将从相应行接收列df['Number']的值。

例如,df2['N_Machine']的行[0]与行[1]中的df['Number]匹配。那么df2['N_Machine']应该从df['Number]接收值'12.55.21'。因此df2的行[0]将更改为:

df:  
N_Machine       x       y       z
0     12.55.21   90.42  910.29   62.68

我的代码在下面。我的问题是:在比较列之后,df2["Machine"]正在接收df["Number"]的第一个值,而不是来自匹配行的df["Number"]值,我该如何解决此问题?

import pandas as pd
import pandas
df = pandas.read_excel('Part_Dat.xlsx', engine='openpyxl')
df2 = pd.read_csv("Data_Aver_Coord.csv")
if [df['Name'].isin(df2['N_Machine'])]:
df2['N_Machine']=df['Number']`

使用pandas.DataFrame.merge():

df3 = df1.merge(df2, left_on='N_Machine', right_on='Name', how='outer').drop(['N_Machine'], axis=1)

输出:

>>> df3
x       y       z   Name    Number
0    90.42  910.29   62.68  CB-32  12.55.21
1    90.42  910.29   62.68  CB-32  12.55.33
2   985.65  995.54  669.62  CB-27  12.55.62
3   852.92  952.51  525.60  CB-18  12.55.26
4   950.92  906.64  618.59  CB-43  12.55.49
5      NaN     NaN     NaN  CB-15  12.55.47
6      NaN     NaN     NaN  CB-91  12.55.75
7      NaN     NaN     NaN  CB-07  12.55.13
8      NaN     NaN     NaN  CB-22  12.55.14
9      NaN     NaN     NaN  CB-16  12.55.52
10     NaN     NaN     NaN  CB-24  12.55.55
11     NaN     NaN     NaN  CB-17  12.55.31
12     NaN     NaN     NaN  CB-38  12.55.19
13     NaN     NaN     NaN  CB-51  12.55.23
14     NaN     NaN     NaN  CB-14  12.55.39
15     NaN     NaN     NaN  CB-31  12.55.65
16     NaN     NaN     NaN  CB-41  12.55.62
17     NaN     NaN     NaN  CB-20  12.55.70
18     NaN     NaN     NaN  CB-10  12.55.44

相关内容

  • 没有找到相关文章

最新更新