请考虑以下代码:
import pandas as pd
activities = {
'id': ['34343', '11', '1234'],
'map': [
{'id': 5743, 'summary_polyline': 343434},
{'id': 95},
{'id': 86},
]
}
df = pd.DataFrame(activities)
has_polyline = df['map'].map(lambda x: True if x.get('summary_polyline') else False)
df = df.set_index(has_polyline)
df = df.loc[True]
print(df['map'])
打印的是一个字典:
{'id': 5743, 'summary_polyline': 343434}
但如果有两行以上的数据中包含了折线图:
import pandas as pd
activities = {
'id': ['34343', '11', '1234'],
'map': [
{'id': 5743, 'summary_polyline': 343434},
{'id': 95, 'summary_polyline': 111}, # second True row
{'id': 86},
]
}
df = pd.DataFrame(activities)
has_polyline = df['map'].map(lambda x: True if x.get('summary_polyline') else False)
df = df.set_index(has_polyline)
df = df.loc[True]
print(df['map'])
将显示一个Series
对象:
map
True {'id': 5743, 'summary_polyline': 343434}
True {'id': 95, 'summary_polyline': 111}
Name: map, dtype: object
为什么会这样,我如何才能“始终”获得“Series”,即使只有一行“True”? 我需要一致的输出,因为我不知道有多少行“True”。