Pandas 根据数字的长度将数字拆分为若干部分

Pandas 根据数字的长度将数字拆分为若干部分,pandas,list,dataframe,group-by,Pandas,List,Dataframe,Group By,我有一个数据框,由一列数字和一个很长的数字组成: 数字 238465850 现在我想创建一列的另一个数据帧,但也有多个值,这些值是根据整数长度将原始数字分成相等的部分得到的。 那么,假设原来的号码是238465850。。。是由一百万个整数组成的。我想把这个数字分成1000000/100个数字。新数据框应有一列10000个值,如下所示: 数字 238465850… 347586903… 638456995… . 感谢您的玩具示例,您实际上希望在n\u parts=2中进行划分,而不是除以100:

我有一个数据框,由一列数字和一个很长的数字组成:

数字
238465850

现在我想创建一列的另一个数据帧,但也有多个值,这些值是根据整数长度将原始数字分成相等的部分得到的。 那么,假设原来的号码是238465850。。。是由一百万个整数组成的。我想把这个数字分成1000000/100个数字。新数据框应有一列10000个值,如下所示:

数字
238465850…
347586903…
638456995…
.


感谢您的玩具示例,您实际上希望在
n\u parts=
2中进行划分,而不是除以100:

>>> big_number = 15615384984136871611246544399657
>>> big_number = str(big_number)
>>> n_parts= 2
>>> n_digits = len(big_number) // n_parts
>>> [int(big_number[i:i+n_digits]) for i in range(0, len(big_number), n_digits)]
[1561538498413687, 1611246544399657]
将其放入函数:

>>> def make_parts(big_number: int, n_parts: int):
>>>     big_number = str(big_number)
>>>     n_digits = len(big_number) // n_parts
>>>     return [int(big_number[i:i+n_digits]) for i in range(0, len(big_number), n_digits)]
现在假设您的输入数据帧被称为
df
,并且只有一个值,您可以使用以下内容创建新的
df2

>>> import pandas as pd
>>> df2 = pd.DataFrame(make_parts(df.iloc[0]["Numbers"], n_parts=100), columns=["Numbers"])
总而言之(对于玩具示例,请注意
n_零件
参数):


非常感谢你的帮助。然而,当我运行程序时,我得到以下错误代码:“OverflowerError:int太大,无法转换为float”。可能是什么问题?恐怕您的号码太大,无法存储可用的计算机内存。不知道为什么它被铸造成浮动,但是,您是否显式地调用
float()
somewhere?你知道这个错误到底是针对什么代码行弹出的吗?好吧,当我直接运行这个函数时,事情进展顺利,然而,当我尝试获取数据帧命令时,我得到了错误消息。不知道为什么。不管怎样,这个函数对我来说已经足够了。谢谢
>>> df = pd.DataFrame([15615384984136871611246544399657], columns=["Numbers"])
>>> df2 = pd.DataFrame(make_parts(df.iloc[0]["Numbers"], n_parts=2), columns=["Numbers"])
>>> print(df2)

            Numbers
0  1561538498413687
1  1611246544399657