我对风格以及如何正确地做某事有一个简单的问题。
我想在pandas数据框中获取某些列的所有唯一值,并创建一个地图[' columnName'] - > [值a,VALUEB,...]。这是我的代码:
listUnVals = {}
for col in df:
if ((col != 'colA') and (col != 'colB')):
listUnVals[col] = (df[col].unique())
我想排除一些像colA和colB这样的列。有没有更好的方法来过滤掉我不想要的列,除了写一个if((!=)和(!= ...)。我希望创建一个lambda表达式来过滤这个值,但我可以& #39; t正确创建。
任何答案都将不胜感激。
答案 0 :(得分:2)
删除不需要的列的几种方法
a
b, c
或者,
df.columns[~df.columns.isin(['colA', 'colB'])]
并且,你可以忽略循环
df.columns.difference(['colA', 'colB'])
答案 1 :(得分:1)
您可以创建不需要的列列表,然后检查in
状态
>>> unwanted = ['columnA' , 'columnB']
>>> for col in df:
if col not in unwanted:
listUnVals[col] = (df[col].unique())
或者使用dict理解:
{col : df[col].unique() for col in df if col not in unwanted}