Добавить столбцы данных неравномерного размера в Pandas - PullRequest
1 голос
/ 10 июля 2019

Я хочу добавить список в виде столбца на фрейм данных df.Размер списка отличается от длины столбца.

df = 
A   B   C
1   2   3
5   6   9
4   
6       6
8       4
2       3
4   
6       6
8       4


D = [11,17,18]

Я хочу следующий вывод

df = 
A   B   C   D
1   2   3   11
5   6   9   17
4           18
6       6
8       4
2       3
4   
6       6
8       4

Я делаю следующее, чтобы расширить список до размера кадра данных с помощьюдобавление «nan»

# number of nan value require for the list to match the size of the column
extend_length = df.shape[0]-len(D)

# extend the list 
D.extend(extend_length * ['nan'])

# add to the dataframe
df["D"] = D

A   B   C   D
1   2   3   11
5   6   9   17
4           18
6       6   nan
8       4   nan
2       3   nan
4           nan
6       6   nan
8       4   nan

Где «nan» обрабатывается как строка, но я хочу, чтобы оно было пустым или «nan», таким образом, если я буду искать номер действительной ячейки в столбце D, она выдаст выводиз 3.

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Простой pd.concat на df и серии D следующим образом:

pd.concat([df, pd.Series(D, name='D')], axis=1)

или

df.assign(D=pd.Series(D))

Out[654]:
   A    B    C     D
0  1  2.0  3.0  11.0
1  5  6.0  9.0  17.0
2  4  NaN  NaN  18.0
3  6  NaN  6.0   NaN
4  8  NaN  4.0   NaN
5  2  NaN  3.0   NaN
6  4  NaN  NaN   NaN
7  6  NaN  6.0   NaN
8  8  NaN  4.0   NaN
1 голос
/ 10 июля 2019

Добавление списка как Series будет обрабатывать это напрямую.

D = [11,17,18]
df.loc[:, 'D'] = pd.Series(D)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...