Как растянуть значение для длины столбца в пандах? - PullRequest
1 голос
/ 14 октября 2019

Существует df

df = 

date        foo   bar
2019-01-01  foo1  bar1
2019-02-01  foo2  bar2
2019-03-01  foo3  bar3

и переменная df_if = '123'

Мне нужно сделать дополнительный столбец df_id со значением df_if

# My desirable output is:

date        foo   bar   df_id
2019-01-01  foo1  bar1  123
2019-02-01  foo2  bar2  123
2019-03-01  foo3  bar3  123

Я пытался сделать так

df['df_id'] = df_id * len(df)

Но он умножает и саму переменную

# The result is:

date        foo   bar   df_id
2019-01-01  foo1  bar1  123123123
2019-02-01  foo2  bar2  123123123
2019-03-01  foo3  bar3  123123123

В другом скрипте та же техника работает правильно, я не могу понять, почему она умножаетсязначение

1 Ответ

2 голосов
/ 14 октября 2019

Поскольку это строка, поэтому, если она кратна скаляру, она повторяет значения:

print ('a' * 3)
aaa

print (df_id * 3)
123123123

Возможно, вы хотите преобразовать значения в один список элементов:

print (['a'] * 3)
['a', 'a', 'a']

print ([df_id] * 3)
['123', '123', '123']

df['df_id'] = [df_id] * len(df)

Но самое простое:

df['df_id'] = df_id 

Или:

df = df.assign(df_id = df_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...