我有下面的数据框,我基本上需要找到所有没有A或A,U的组,并将其保存到Excel
| 姓名|组1|组2|组3|第四组|第五组|第六组|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 应用程序用户||||A类|||
| 共享用户|A类||A类||A、U||
| 媒体用户||||A类|||
| 网络用户|||||||
| 打印用户|A、U||A类||A、U||
目前这是我所拥有的,它的工作很好,但我想知道是否有一个更清洁的方式亲的会这样做?
我当前的工作代码:
import pandas as pd
from pathlib import Path
#Source file
File = Path.cwd() /"./UserGrid.xlsx"
#Read excel file
df = pd.read_excel(File)
#Replace A,U with A
df2 = df.replace(('A,U'), 'A')
#Change Index
df3 = df2.set_index('Name')
#Remove all groups that has an admin
df4=df3.columns[df3.ne('A').all()].tolist()
df5=pd.DataFrame(df4, columns =['No Admins'])
#Save to Excel
dfexcel = pd.DataFrame(df5)
writer = pd.ExcelWriter('./No_Admins.xlsx', engine='xlsxwriter')
dfexcel.to_excel(writer, sheet_name='NoAdmins', index=False)
col_idx = dfexcel.columns.get_loc('No Admins')
writer.sheets['NoAdmins'].set_column(col_idx, col_idx, 50)
writer.close()
我在过滤A和A,U时遇到了麻烦,所以我最终在数据框中用A替换了所有的A,U。只是检查一下是否有更有效的方法,或者我应该像这样离开它。
2条答案
按热度按时间avwztpqn1#
选项1
您可以使用
fillna
将缺失的值插补为空字符串,对"A"
和"A,U"
值、全为空的dropna
列应用mask
,获得columns
,然后转换to_frame
。选项2
使用
isin
检查哪些单元格具有"A"
或"A,U"
,使用eq
将值翻转为False
,检查哪些列是all
True
,过滤掉False
,获取index
并转换to_frame
一个二个一个一个
注:将
out
导出到excel并忽略索引将产生如下所示的帧:agyaoht72#
使用www.example.com怎么样np.select?