python pandas数据比较

莉莉

我正在尝试比较两个 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

比较Python Pandas中的2个不同数据框

Python,Pandas:比较两个数据框并组合返回

Python Pandas比较数据集中的属性并计算特定城市的总数

Pandas \ Python:通过成对比较创建新的数据框

分组数据框后进行比较(Python 3,pandas)

Python Pandas优化算法:比较日期时间并检索数据

Python先前数据的比较

比较来自不同 Pandas 数据帧的列,并替换其值 <Pandas, Python>

使用 Pandas 比较两个数据帧以返回一个新的数据帧 - Python

比较python中pandas数据框的单列的值(将perl转换为python代码)

我想将国家列表与列数据进行比较,列数据是pandas数据框Python中的字典对象类型

如何比较两个str值数据框python pandas

Python Pandas:根据某些列比较数据框的行,并删除具有最低值的行

Python,Pandas:比较数据框并分别保留旧的,更新的和新的

比较两个Python Pandas数据框的2列并获取公共行

通过比较两列来创建新数据框的Python / Pandas语法

如何根据列值比较在python中过滤Pandas数据框?

Python Pandas:将具有不同间隔的刻度与每小时数据进行比较

Python Pandas在新列中比较2个数据框输出的新/删除/更改值

将 Python pandas 中的三个数据框与重复条目进行比较

比较因子变量的每个级别的数据帧的两个连续行的值 - Python Pandas

Python / Pandas 比较列上的记录

Python Pandas比较CSV keyerror

Python Pandas Dataframe年度比较

比较python中的数据列表

需要将一个Pandas(Python)数据框与另一个数据框的值进行比较

比较季度数据:在 Python(Pandas) 中迭代以比较来自作为数据框导入的四个不同 excel 文件的多列

比较 Pandas 中的数据

Python / Pandas:比较两个数据框中的多列,如果找不到匹配项,则删除行