我有一个数据框,其中包含一列“水果”,其中包含类似的内容。
[u'']
[u'']
[u'']
[u'' u'apple' u'Orange']
[u'']
[u'']
我只想返回具有[u'']的项目。
我已经尝试使用bool类型和strlen进行此操作,但在其他一些地方,我可能会有类似的内容
[u'apple']
df1 = d[d['Fruit'].str.len()== 0]
不返回任何内容,因为它计为1。
答案 0 :(得分:1)
您表示数据框的方式有点奇怪。假设{
"_id": 0,
"games": {
"gamesList": [
{
"franchiseName": "Tekken",
"genre": "Fighting",
"gamesInFranchise": [
{
"name": "Tekken 6",
"releaseDate": "11/26/2007",
"co-op": true
},
{
"name": "Tekken 5",
"releaseDate": "01/01/2004",
"co-op": true
}
]
}
]
}
}
列中的每个条目实际上都是一个列表,那么它的长度将为1,因为每个记录都是一个其中包含一个条目的列表(至少在您提供的数据中)。
您感兴趣的Fruit
记录是一个由简单的空字符串组成的列表。您在字符串前面看到的[u'']
字符不是字符串的一部分,而只是表示该字符串是unicode,this answer了解更多信息。
要解决您的问题,您应该能够做到
u
仅拉回包含空字符串的行。
如果您仍然不清楚发生了什么,请尝试以下操作:
df1 = d[d['Fruit'] == ['']]