切片Pandas Dataframe时出现问题

时间:2019-03-01 08:54:26

标签: python pandas

在尝试对pandas数据框中的数据进行切片时遇到问题。我有一个数据框,其大小为6列和22000多行。 我想使用以下代码行将其切成一点数据框:

logs = pd.DataFrame(list(storLogs.find({"idPlc": ObjectId("5c5ae7187910e20087489296")})))
y1 = logs.loc[logs['idType'] == '5c6c189d319f83008487ba3a']

此ID在数据框中存在多行,但是当我执行代码时,它返回一个空的数据框。

这是我使用logs.head()返回的内容

   __v                       _id           createdAt  \
0    0  5c6fbbd5bf8272006ce0c8d1 2019-02-22 09:07:33   
1    0  5c6fbbd5bf8272006ce0c8d2 2019-02-22 09:07:33   
2    0  5c6fbbd5bf8272006ce0c8d3 2019-02-22 09:07:33   
3    0  5c6fbc11bf8272006ce0c8e3 2019-02-22 09:08:33   
4    0  5c6fbc11bf8272006ce0c8e4 2019-02-22 09:08:33   

                      idPlc                    idType  value  
0  5c5ae7187910e20087489296  5c6c189d319f83008487ba3a  29378  
1  5c5ae7187910e20087489296  5c6fbb33319f83008487ba3b  17294  
2  5c5ae7187910e20087489296  5c6fbb3a319f83008487ba3c  10012  
3  5c5ae7187910e20087489296  5c6c189d319f83008487ba3a  29378  
4  5c5ae7187910e20087489296  5c6fbb33319f83008487ba3b  17294  

1 个答案:

答案 0 :(得分:0)

其他可能的解决方案之一是使用df.query,您可以 还指定选择行的条件,例如:

logs.query("idType == '5c6c189d319f83008487ba3a'")

支持此概念的一个因素是,特别是对于大型DataFrame, query 是一个非常有效的解决方案。