У меня есть фреймы данных pandas df
, например,
A length
0 648702831 9
1 26533315 8
2 366073121 9
3 354701058 9
4 05708239 8
5 705542215 9
6 1574512 7
7 397015500 9
Теперь мне нужно проверить столбец length
и создать новый столбец на основе условий.Если length
= 9, мне нужны первые пять из A
, если length
= 8, мне нужно «0» и первые четыре символа A
, и так далее.Для length
8 мне нужно добавить «0» впереди.
Например,
for i in df['length']:
if i == 9:
df['new_column'] = df['A'].astype(str).str[0:5] # to take 5 characters for a df with 10000 rows takes a lot of time
elif i == 8:
df['new_column'] = "0" & df['A'].astype(str).str[0:4] ## Need help here
Мой желаемый результат:
A length new_column
0 648702831 9 64870
1 26533315 8 02653
2 366073121 9 36607
3 354701058 9 35470
4 05708239 8 00570
5 705542215 9 70554
6 1574512 7 00157
7 397015500 9 39701
ВExcel power-query
,
это делается примерно так:
if Text.Length([length]) = 8
then "0" & Text.Start([length],4)
Как я могу сделать это в Python 3?