我正在研究我的第一个Pandas数据探索笔记本,我遇到了一些Pandas操作的问题,比如标题HashSet<List<Integer>> set = new HashSet<List<Integer>>(){
@Override
public String toString(){
return "some random text";
}
};
//Code that assigns some values to the set variable
for(List<Integer>subSequence:set){
System.out.println(subSequence.toString());
} //Still prints the values in the Lists
。
我有一个包含以下列和数据类型的数据框:
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')
。
我意识到Pandas正在尝试比较strs和float会导致Python 3中的错误,但我不明白为什么,也不知道如何绕过这个问题。显然其他一些专栏的内容会干扰这个?我在尝试其他一些Pandas操作时也遇到了错误。
More context in the form of Jupyter notebook
我的数据框架中是否存在根本错误?任何与此问题相关的文档?我今晚刚刚选择了Pandas,所以我还不确定哪些文档是相关的,或者数据框架是如何操作的。我可能会拿起一本关于这个主题的书。
答案 0 :(得分:1)
我认为你误解了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.filter
,df.mask
,df.query
甚至boolean indexing
的内容:
mask = (df.longitude <= 50.0)
df = df[mask]