日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python删除所有core文件_python – 从pandas.core.series.Series中删除前导零

發布時間:2025/3/19 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python删除所有core文件_python – 从pandas.core.series.Series中删除前导零 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有一個帶有數據的pandas.core.series.Series

0 [00115840, 00110005, 001000033, 00116000...

1 [00267285, 00263627, 00267010, 0026513...

2 [00335595, 00350750]

我想從系列中刪除前導零.我試過了

x.astype('int64')

但得到了錯誤信息

ValueError: setting an array element with a sequence.

你能建議我在python 3.x中怎么做嗎?

解決方法:

如果想要將字符串列表轉換為整數列表,請使用list comprehension:

s = pd.Series([[int(y) for y in x] for x in s], index=s.index)

s = s.apply(lambda x: [int(y) for y in x])

樣品:

a = [['00115840', '00110005', '001000033', '00116000'],

['00267285', '00263627', '00267010', '0026513'],

['00335595', '00350750']]

s = pd.Series(a)

print (s)

0 [00115840, 00110005, 001000033, 00116000]

1 [00267285, 00263627, 00267010, 0026513]

2 [00335595, 00350750]

dtype: object

s = s.apply(lambda x: [int(y) for y in x])

print (s)

0 [115840, 110005, 1000033, 116000]

1 [267285, 263627, 267010, 26513]

2 [335595, 350750]

dtype: object

編輯:

如果只想要整數,你可以將值展平并轉換為整數:

s = pd.Series([item for sublist in s for item in sublist]).astype(int)

替代方案:

import itertools

s = pd.Series(list(itertools.chain(*s))).astype(int)

print (s)

0 115840

1 110005

2 1000033

3 116000

4 267285

5 263627

6 267010

7 26513

8 335595

9 350750

dtype: int32

時序:

a = [['00115840', '00110005', '001000033', '00116000'],

['00267285', '00263627', '00267010', '0026513'],

['00335595', '00350750']]

s = pd.Series(a)

s = pd.concat([s]*1000).reset_index(drop=True)

In [203]: %timeit pd.Series([[int(y) for y in x] for x in s], index=s.index)

100 loops, best of 3: 4.66 ms per loop

In [204]: %timeit s.apply(lambda x: [int(y) for y in x])

100 loops, best of 3: 5.13 ms per loop

#c???s???? sol

In [205]: %%timeit

...: v = pd.Series(np.concatenate(s.values.tolist()))

...: v.astype(int).groupby(s.index.repeat(s.str.len())).agg(pd.Series.tolist)

...:

1 loop, best of 3: 226 ms per loop

#Wen solution

In [211]: %timeit pd.Series(s.apply(pd.Series).stack().astype(int).groupby(level=0).apply(list))

1 loop, best of 3: 1.12 s per loop

flatenning的解決方案(@c???s????的想法):

In [208]: %timeit pd.Series([item for sublist in s for item in sublist]).astype(int)

100 loops, best of 3: 2.55 ms per loop

In [209]: %timeit pd.Series(list(itertools.chain(*s))).astype(int)

100 loops, best of 3: 2.2 ms per loop

#c???s???? sol

In [210]: %timeit pd.Series(np.concatenate(s.values.tolist()))

100 loops, best of 3: 7.71 ms per loop

標簽:python,pandas,time-series

總結

以上是生活随笔為你收集整理的python删除所有core文件_python – 从pandas.core.series.Series中删除前导零的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。