我正在尝试比较两个 excel,一个是用户矩阵,另一个是我从主机生成的。我想知道用户设置在矩阵中是否正确。
我从主机那里得到的结果,我导入到 Pandas:这里的用户组是列名!
Name Users Domain Admins Administrators Schema Admins
0 xxx NaN Yes Yes NaN
问题是 :
excel矩阵就像
user: groups
xxx administrators
schema admins
domain admins
这是我尝试过的:
我将用列名称替换所有 Yes:
for i in df.columns:
df[i].replace('Yes',i,inplace=True)
从中删除空值。
group=df.dropna(axis='columns',how='all')
现在是这样的:
Name Users Domain Admins Administrators Schema Admins
0 xxx Domain admins Administrators Schema Admins
另一个喜欢:
User Account Name Group
0 xxx Domain Admins, Local admin,Administrators
我不知道接下来要做什么。请指导我如何比较所有索引的循环中的索引值。
原来的两个excel是这样的:
user: groups
xxx administrators
schema admins
domain admins
yyy administrators
domain admins
zzz administrators
schema admins
另一个文件如:
username administrators schema admins domain admins
xxx yes yes NaN
yyy yes NaN yes
这是如何做到的:
第 1 步:转换主机 df
cols = ['administrators', 'schema admins', 'domain admins']
df1['merged'] = df1[cols].apply(lambda x: ', '.join(x[x.notnull()]), axis = 1) ##df1 is host df
第 2 步:变换矩阵 df
df.user = df.user.ffill() ## Fill the empty rows with same user name
grouped_df = df.groupby("user")['groups'].apply(','.join).reset_index() ## merge same user name to 1 row
第 3 步:比较两个 df
result_df = pd.merge(df1, grouped_df, how='inner', left_on="merged", right_on="user") ## The left_on/right_on will change according to the column name you have
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句