Python:使用Pandas,如何在输出中选择列?

时间:2016-06-08 18:15:23

标签: python python-3.x pandas ipython jupyter-notebook

我正在针对用户帐户运行我的整个Active目录,试图查找不属于的内容。  使用我的代码,我的输出给了我只在Username列中出现一次的单词。即使我正在分析一列数据,我想保留所有与数据相关的列。

from pandas import DataFrame, read_csv
import pandas as pd  
f1 = pd.read_csv('lastlogonuser.txt', sep='\t', encoding='latin1')
f2 = pd.read_csv('UserAccounts.csv', sep=',', encoding ='latin1')
f2 = f2.rename(columns={'Shortname':'User Name'})
f = pd.concat([f1, f2])
counts = f['User Name'].value_counts()
f = counts[counts == 1] 
f 

运行代码时,我得到类似的内容:

sample534         1
sample987         1
sample342         1
sample321         1
sample123         1

我希望txt文件中的所有数据都出现在我的输出中,但我仍然只想分析用户名列。如何将所有数据保留在所有列中,或者我是否必须使用不同的字数来包含所有数据列?

我想要像:

   User Name    Description
1  sample534    Journal Mailbox managed by         
1  sample987    Journal Mailbox managed by    
1  sample342    Journal Mailbox managed by   
1  sample321    Journal Mailbox managed by 
1  sample123    Journal Mailbox managed by 

我正在使用的数据样本:

Account User Name User CN                       Description
ENABLED MBJ29     CN=MBJ29,CN=Users             Journal Mailbox managed by  
ENABLED MBJ14     CN=MBJ14,CN=Users             Journal Mailbox managed by
ENABLED MBJ08     CN=MBJ30,CN=Users             Journal Mailbox managed by   
ENABLED MBJ07     CN=MBJ07,CN=Users             Journal Mailbox managed by 

1 个答案:

答案 0 :(得分:1)

根据您的描述,我想您希望使用唯一元素的计数作为索引来选择数据框中的行。也许你可以试试这个:

df2 = pd.DataFrame()    
counts = f['User Name'].value_counts()
counts = counts[counts == 1].index
for index in counts:
    df2 = df2.append(f[f['User Name'] == index])