應避免在Series
對象使用list
S,但你可以做什麼你問這樣的:
編輯:用法
# DON'T use `eval` in production I'm just using it for convenience here
In [7]: s = read_clipboard(sep=r'\s{2,}', index_col=0, header=None, squeeze=1).map(eval)
In [8]: s
Out[8]:
0
$10 [1, 0, 1, 1, 1, 1, 1]
$100 [0, 0, 0]
$15 [1]
$19 [0, 0]
$1? [1, 1]
$20 [0, 1, 1]
$20-$40 [0]
In [20]: n = 3
In [21]: s.map(len) >= n
Out[21]:
0
$10 True
$100 True
$15 False
$19 False
$1? False
$20 True
$20-$40 False
Name: 1, dtype: bool
In [22]: s[s.map(len) >= n]
Out[22]:
0
$10 [1, 0, 1, 1, 1, 1, 1]
$100 [0, 0, 0]
$20 [0, 1, 1]
Name: 1, dtype: object
您不應在Series
對象中使用list
s,因爲它們是引擎蓋下的object
陣列,而不是均勻類型其中Series
可以利用numpy
的速度。
的感謝!我實際上已將它轉換爲列表字典中的一系列對象。爲什麼最好不要使用一個系列?並且解決方案與列表字典相同嗎? –
這並不是說使用'Series'就是「壞」,這是因爲當你將任意對象放入'Series'中時,它們要比擁有均勻類型的'Series'慢得多。 –