Python Pandas合并/连接

zzwlnbp8  于 2022-12-09  发布在  Python
关注(0)|答案(1)|浏览(156)

这是一个基本测试的示例脚本,以后应该在PowerQuery/Python中实现。我不是Python开发人员,所以请温和一点。

import pandas as pd

data = [['Sql "syn-eu2-prd-edw-001 database windows net", "syndpeu2prdedw1",  Query="SELECT ta FROM rdv_60_137.Account"', "x1"], ["b1", "x2"]]
df = pd.DataFrame(data, columns=["Expression","Key"])

ser = df['Expression']
serpd = pd.Series(ser)
print (serpd)

x = serpd.str.extractall(r'"(.*?)"')
print (x)

z = pd.merge(df, x, how="inner", left_index=True, right_index=True)
print (z)

我们的目标是创建一个新的DataFrame,其中包含第一个集合中的所有记录,但第一个记录将有3个示例,因为Regex函数创建了3行。
哈里·克尔

cyvaqqii

cyvaqqii1#

MultiIndex.droplevel删除MultiIndex的第二级,并按DataFrame.join添加原始行:

z = (df.join(df['Expression'].str.extractall(r'"(.*?)"')[0].droplevel(1).rename('New'))
       .reset_index(drop=True))
print (z)
                                          Expression Key  \
0  Sql "syn-eu2-prd-edw-001 database windows net"...  x1   
1  Sql "syn-eu2-prd-edw-001 database windows net"...  x1   
2  Sql "syn-eu2-prd-edw-001 database windows net"...  x1   
3                                                 b1  x2   

                                        New  
0  syn-eu2-prd-edw-001 database windows net  
1                           syndpeu2prdedw1  
2         SELECT ta FROM rdv_60_137.Account  
3                                       NaN

相关问题