Как добавить значения ndarray в строки данных отдельных столбцов? - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть функция, которая возвращает ndarray вот так

[0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0] 

Теперь у меня есть фрейм данных df со столбцами A, B, C, ..., Z;но массив, который мы получаем, имеет только 20 значений.Следовательно, я хочу найти способ, чтобы для каждого массива, который я получаю в качестве вывода, я мог сохранить его в df, например, так (A, B, W, X, Y, Z следует оставить пустым):

__| A | B | C | D | E | F | ...
0 |nan|nan| 0 | 1 | 0 | 0 | ...
1 |nan|nan| 1 | 1 | 0 | 1 | ...
.
. 
.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Я не мог получить то, что хотел, через предложения, размещенные здесь.Тем не менее, я понял это сам.Я делюсь этим здесь для справки сообщества.

import pandas as pd
import numpy as np

df = pd.DataFrame(columns=[chr(i) for i in range(ord('A'),ord('Z')+1)])

print(df)
Empty DataFrame
Columns: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]
Index: []

[0 rows x 26 columns]
list1 = [i for i in range(101,121)]
arr1d = np.array(list1)

arr1d
array([101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
       114, 115, 116, 117, 118, 119, 120])
# Create alphabet list of uppercase letters
alphabet = []
for letter in range(ord('C'),ord('W')):
    alphabet.append(chr(letter))
alphabet
['C',
 'D',
 'E',
 'F',
 'G',
 'H',
 'I',
 'J',
 'K',
 'L',
 'M',
 'N',
 'O',
 'P',
 'Q',
 'R',
 'S',
 'T',
 'U',
 'V']
df = df.append(pd.Series(arr1d, index=alphabet), ignore_index=True)
#This line of code can be used for every new value of arr1d 

enter image description here

0 голосов
/ 26 декабря 2018

Я создал небольшой пример вашей проблемы.надеюсь, что это поможет

import pandas as pd
import numpy as np

df = pd.DataFrame(np.nan, index=[0, 1, 2, 3], columns=['A', 'B', 'C'])
data = np.array([[0, 1],
                   [1, 1]])
print(df)
# df[['B', 'C']] = pd.DataFrame.from_records(data)
df[['B', 'C']] = pd.DataFrame(data)

print(df)

вывод:

    A   B   C
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN

    A    B    C
0 NaN  0.0  1.0
1 NaN  1.0  1.0
2 NaN  NaN  NaN
3 NaN  NaN  NaN
...