Pandas从列中选择唯一值

时间:2018-01-17 02:14:46

标签: python-3.x pandas

通过这样做,我能够在jupyter笔记中摄取csv:

csvData= pd.read_csv("logfile.csv")

我的数据如下:

event_timestamp ip  url 
2018-01-10 00:00 111.111.111.111 http://webpage1.com
2018-01-10 00:00 222.222.222.222 http://webpage2.com
...
..
.

我得到了一份独特的ips列表:

list_ips = csvData("[ip]")

我要做的是获得唯一。通常我会这样做:

list_ips.unique()

但是在这种情况下我收到了这个错误:

AttributeError: 'DataFrame' object has no attribute 'unique'

(我可以使用list_ips.head(),它会列出一些IP,但它不是唯一的列表)

由于

修改 我的问题是我实际上有:

list_ips = csvData([["ip"]]) 

所以我删除了一组括号,因此它变为:

list_ips = csvData(["ip"]) 

然后我能够按照温的例子来做:

list_ips.unique().tolist()

输出:

['111.111.111.111','222.222.222.222'...]

2 个答案:

答案 0 :(得分:2)

您需要正确选择列,然后应用unique

csvData['ip'].unique().tolist()
Out[677]: ['111.111.111.111', '222.222.222.222']

答案 1 :(得分:1)

您遇到此问题的原因是pd.read_csv("logfile.csv").unique()不是DataFrame的有效属性。我建议你做的是因为csvData作为列表出现,你可以通过csvData['ip']搜索所有的ip,然后用csvData['ip'].unique()搜索唯一的ip。