Pandas 从列中选择唯一值

13

我可以通过以下方式在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
...
..
.

我收到了一个唯一IP地址列表:

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"]) 

然后我能够跟随 Wen 的例子,并执行:

list_ips.unique().tolist()

输出:

['111.111.111.111','222.222.222.222'...]
2个回答

13
你需要正确选择列,然后应用unique
csvData['ip'].unique().tolist()
Out[677]: ['111.111.111.111', '222.222.222.222']

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接