как заполнить столбец Pandas данных со списком, содержащим строковые значения - PullRequest
2 голосов
/ 20 января 2020

У меня есть датафрейм с 142 строками. Я создал новый столбец. Я хочу заполнить этот новый столбец списком, содержащим строки.

my_list = ['abc','def','hig']
df['names'] = df['names'].fill(my_list) #pseudo code

Я хочу заполнить все 142 строки в столбце «имена» строковыми значениями в списке в том же порядке.

The output should be as:   

     names
   1 abc
   2 def
   3 hig
   4 abc
   5 def

Ответы [ 2 ]

5 голосов
/ 20 января 2020

Я думаю, вам нужно что-то вроде ниже с помощью np.resize, который изменит размер списка в соответствии с фреймом данных.

Пример фрейма данных:

df = pd.DataFrame(np.random.randint(0,100,size=(5,4)),columns=list('ABCD'))

    A   B   C   D
0  10  99   0  61
1  55   0  52  53
2  34  88  79  54
3  25  32   1  89
4  39  30  77   5

Решение:

mylist=['abc','def','hig']
df['names'] = np.resize(mylist,len(df))
print(df)

    A   B   C   D names
0  10  99   0  61   abc
1  55   0  52  53   def
2  34  88  79  54   hig
3  25  32   1  89   abc
4  39  30  77   5   def
2 голосов
/ 20 января 2020

У тебя почти было это. Попробуйте это,

import pandas as pd
list = ['abc','def','hig']
df=pd.DataFrame(list)
df.columns=['names'] #provides a name for the column

df_repeated = pd.concat([df]*48, ignore_index=True)

, что дает вам 48 * 3 = 144 строки. Тогда

df_repeated =df_repeated.reindex(df_repeated.index.drop(144)).reset_index(drop=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...