1
A
回答
1
您可以使用apply
和测试柱像这样:
In [5]:
import pandas as pd
df = pd.DataFrame({'a':[1,'dsvfsdv', [1,2,3,4,5,], 3.4565, list('asdad')]})
df
Out[5]:
a
0 1
1 dsvfsdv
2 [1, 2, 3, 4, 5]
3 3.4565
4 [a, s, d, a, d]
[5 rows x 1 columns]
In [6]:
df.apply(lambda row: isinstance(row.a, list), axis=1)
Out[6]:
0 False
1 False
2 True
3 False
4 True
dtype: bool
现在你可以使用这个作为掩模:
In [10]:
df[df.apply(lambda row: isinstance(row.a, list), axis=1)]
Out[10]:
a
2 [1, 2, 3, 4, 5]
4 [a, s, d, a, d]
[2 rows x 1 columns]
+0
完美的工作。谢谢! –
0
我不这么认为。很确定你需要一个循环,并且必须对列表中的每种类型运行isinstance测试。如果列表是对象而不是特定的类,则需要为列表中的每个元素调用getClass()以使isinstance正常工作。
相关问题
- 1. python pandas从一系列布尔值中获取索引边界
- 2. 试图理解布尔数组索引
- 3. 尝试索引本地(布尔值)
- 4. 布尔索引ND numpy的阵列
- 5. TensorFlow布尔索引
- 6. 布尔测试在Python中的列表
- 7. Apex测试类--System.NullPointerException:尝试去引用一个空对象
- 8. 熊猫:IndexingError:不可对齐的布尔系列作为索引器提供
- 9. 为布尔列创建索引
- 10. 类和索引器 - 对象列表
- 11. C#JSON,检测对象或布尔
- 12. '空对象引用'布尔android.os.Handler.postDelayed(java.lang.Runnable,long)'
- 13. 两个系列的布尔比较对象
- 14. 发布一个对象类型引用
- 15. '布尔对象没有归属索引'错误
- 16. 规范化一对一布尔关系
- 17. Python:测试为None,测试布尔值
- 18. Ruby,BinData,布尔值不被识别为对象类型
- 19. 传递一系列搜索对象
- 20. PHPUnit - 用于测试同一对象的两个测试类
- 21. IndexingError使用布尔索引
- 22. 索引布尔字段
- 23. 熊猫布尔索引
- 24. Numpy教程 - 布尔索引
- 25. numpy布尔索引混淆
- 26. 在xarray布尔索引
- 27. lua尝试索引全局“StaticBody”(一个布尔值)
- 28. 布尔索引的列值存储为一个变量在python
- 29. 一列索引对2列索引
- 30. 在布尔列上添加SQL Server索引对于性能
我认为这是值得一提的是,在系列/ DataFrames存储列表是通常效率不高,而且你失去了numpy/pandas的许多好处。将有趣的看到*为什么*你这样做:) –
mongodb是数据源。 mongo在检索子字段时不会变平,所以直接将数据直接拖到df中就像这样:'df = pd.DataFrame(list(jobs.find({},{'id':1,'avgtime.overall': 1})))'包含列表的avgtime系列的结果。通过使用EdChum的帮助,我能够编写一个函数来“批准”这个系列。 –
如果你可以返回mongo查询作为一个字符串,read_json可以压扁子字段(并且效率会很高)。我回头看了一会儿,但是因为没有使用它,所以没有跟进...会有直接的mongo - > pandas。 –