последовательный срез по одному символу номера
Есть номер 466896223223.
Нужно вывести в dataframe последовательный срез по одному символу с конца.
Результат:
466896223223
46689622322
4668962232
466896223
46689622
4668962
466896
46689
4668
466
46
Ответы (4 шт):
Автор решения: kristal
→ Ссылка
Задача элементарная же...
import pandas as pd
def slices(phone):
data = []
for i in range(len(phone), 0, -1):
data.append(phone[:i])
df = pd.DataFrame(data, columns=["slice_number"])
return df
print(slices("466896223223"))
Автор решения: strawdog
→ Ссылка
import pandas as pd
num = "466896223223"
df = pd.DataFrame(num, index=range(len(num)), columns=["num"])
df["num"] = df.apply(lambda x: x["num"][:-x.name] if x.name else x["num"], axis=1)
num
0 466896223223
1 46689622322
2 4668962232
3 466896223
4 46689622
5 4668962
6 466896
7 46689
8 4668
9 466
10 46
11 4
Автор решения: Алексей Р
→ Ссылка
Вариант с генератором
def fun(number):
while number:
yield number
number = number[:-1]
df = pd.DataFrame(fun('466896223223'))
print(df)
0
0 466896223223
1 46689622322
2 4668962232
3 466896223
4 46689622
5 4668962
6 466896
7 46689
8 4668
9 466
10 46
11 4
Автор решения: Dmitrii Malygin
→ Ссылка
Можно реализовать через list comprehension:
import pandas as pd
num = "466896223223"
result = [num[:i] for i in range(len(num), 0, -1)]
pd.DataFrame(result, columns=["num"])
результат:
num
0 466896223223
1 46689622322
2 4668962232
3 466896223
4 46689622
5 4668962
6 466896
7 46689
8 4668
9 466
10 46
11 4