1
A
回答
4
這裏有一個方法,提取到數組並且通過引入具有None/np.newaxis
的新軸線而延伸至2D
-
pd.Series(s.values[:,None].tolist())
這裏有一個類似的,但重塑延伸到2D
- 使用@P-robot's setup
pd.Series(s.values.reshape(-1,1).tolist())
運行測試 -
In [43]: s = pd.Series(np.random.randint(1,10,1000))
In [44]: %timeit pd.Series(np.vstack(s.values).tolist()) # @Nickil Maveli's soln
100 loops, best of 3: 5.77 ms per loop
In [45]: %timeit pd.Series([[a] for a in s]) # @P-robot's soln
1000 loops, best of 3: 412 µs per loop
In [46]: %timeit s.apply(lambda x: [x]) # @mgc's soln
1000 loops, best of 3: 551 µs per loop
In [47]: %timeit pd.Series(s.values[:,None].tolist()) # Approach1
1000 loops, best of 3: 307 µs per loop
In [48]: %timeit pd.Series(s.values.reshape(-1,1).tolist()) # Approach2
1000 loops, best of 3: 306 µs per loop
1
這確實是一種有效的方式排列:
import numpy as np
np.array([[a] for a in s],dtype=object)
array([[1],
[2]], dtype=object)
2
如果你想結果仍然是熊貓Series
你可以使用apply
方法:
In [1]: import pandas as pd
In [2]: s = pd.Series([1, 2])
In [3]: s.apply(lambda x: [x])
Out[3]:
0 [1]
1 [2]
dtype: object
1
調整atomh33ls的回答,這裏的一系列列表:
output = pd.Series([[a] for a in s])
type(output)
>> pandas.core.series.Series
type(output[0])
>> list
時機與選擇的建議:
import numpy as np, pandas as pd
s = pd.Series(np.random.randint(1,10,1000))
>> %timeit pd.Series(np.vstack(s.values).tolist())
100 loops, best of 3: 3.2 ms per loop
>> %timeit pd.Series([[a] for a in s])
1000 loops, best of 3: 393 µs per loop
>> %timeit s.apply(lambda x: [x])
1000 loops, best of 3: 473 µs per loop
相關問題
- 1. 大熊貓含系列陣列
- 2. 熊貓系列以numpy陣列轉換錯誤
- 3. 將熊貓系列轉換爲numpy陣列
- 4. 熊貓pd.cut() - 裝箱datetime列/系列
- 5. 在熊貓系列裝滿值列
- 6. 熊貓陣列
- 7. 熊貓系列extractall錯誤
- 8. 熊貓系列累計argmax
- 9. 熊貓拼接系列
- 10. 從一個熊貓系列
- 11. 「轉置」熊貓系列
- 12. 切片系列在熊貓
- 13. 乘用熊貓系列
- 14. 熊貓重命名系列
- 15. 熊貓:寫作系列JSON
- 16. 熊貓追加到系列
- 17. 加入熊貓系列multIndex
- 18. 獲取熊貓系列csv
- 19. 從熊貓系列中選擇行是陣列的行
- 20. 大熊貓列名列出
- 21. 熊貓和Python圖像到numpy陣列
- 22. 大熊貓陣列
- 23. 列表來調用大熊貓列
- 24. 區分大小寫熊貓系列匹配和清潔熊貓系列邏輯
- 25. 熊貓使用系列來選擇列名
- 26. 在數據幀變換系列(熊貓/ Python)的其中列有各系列的
- 27. 分組的熊貓列(這是一個系列本身)的合併系列
- 28. 熊貓繪圖與系列兩列在第三列值定義
- 29. Python的熊貓:在陣列列
- 30. 打開包裝列表爲大熊貓
更好的方法相比,我的。 –
@Divakar爲了完整起見,你可以用'pd.Series(memoryview(s.values.reshape(-1,1))。tolist())'添加一個「Approach3」,因爲它應該更快(至少使用我當前的配置,它是)在memoryview上構建'Series'(可能更容易看到更大的示例)。 – mgc
@mgc它僅適用於python3嗎?在我用python 2.7結束時,我得到這個錯誤:''NotImplementedError:tolist()只支持字節視圖「',當試圖做:'memoryview(s.values.reshape(-1,1))。tolist )'。 – Divakar