在Pandas的clip-on列上获取只有数字d的无序类型

2024-07-08 14:40:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写我的第一个熊猫数据探索笔记本,我遇到了一些熊猫操作的问题,比如标题的clip。你知道吗

我有一个包含以下列和数据类型的数据框: kairaId object sex object primaryPerson bool birthDay float64 birthMonth float64 birthYear float64 deathYear float64 ownHouse object returnedKarelia object previousMarriages object pageNumber object sourceTextId object professionId int64 professionName object placeName object region object stemmedName object extractedName object latitude float64 longitude float64 children_count int64 migration_count float64 dtype: object 我想删除一些基于经度的异常行。我以为熊猫的clip会起作用:

df = df.clip(None, upper=50.0, axis='longitude') 然而,这会导致TypeError: unorderable types: str() >= float()。你知道吗

我意识到Pandas试图比较strs和float,这导致了python3中的一个错误,但我不明白为什么,也不知道如何规避这个问题。显然是其他栏目的内容干扰了这一点?我在尝试其他操作时也遇到了错误。你知道吗

More context in the form of Jupyter notebook

我的数据框架有什么根本性的错误吗?是否有与此问题相关的文档?我今天晚上刚刚挑选了熊猫,所以我还不确定哪些文档是相关的,也不知道数据帧在幕后是如何工作的。我可能会买一本关于这个话题的书。你知道吗


Tags: 数据文档标题dfclipobjectcount错误
1条回答
网友
1楼 · 发布于 2024-07-08 14:40:04

我认为您误解了df.clip的用法-它是为了使异常值符合某些特定的外部边界,而不是删除它们。文档中的一个示例:

df

          0         1
0  0.335232 -1.256177
1 -1.367855  0.746646
2  0.027753 -1.176076
3  0.230930 -0.679613
4  1.261967  0.570967

df.clip(None, 0.5)

          0         1
0  0.335232 -1.256177
1 -1.367855  0.500000
2  0.027753 -1.176076
3  0.230930 -0.679613
4  0.500000  0.500000

另外,axis参数将引用0或1(沿行或列应用)。它根本不引用列。你知道吗

在本例中,您希望删除与异常经度关联的所有记录。为此,您应该按照df.filterdf.maskdf.query、甚至仅仅boolean indexing的思路使用:

mask = (df.longitude <= 50.0)
df = df[mask]

相关问题 更多 >

    热门问题