Вставьте dataFrame в другой столбец dataFrame - PullRequest
0 голосов
/ 30 августа 2018

Мне нужно вставить dataframe в другой столбец dataframe, как мне это сделать?

df = pd.DataFrame(columns=('X_F', 'Y_F', 'Z_F', 'Label'))
    df['X_F'] = X[uid]
    df['Y_F'] = Y[uid]
    df['Z_F'] = Z[uid]

Это показывает мне

ValueError: Cannot set a frame with no defined index and a value that cannot be converted to a Series

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 30 августа 2018

Я не совсем уверен, чего вы пытаетесь достичь, но вы можете использовать MultiIndex, если хотите хранить кадры данных внутри данных.

Пожалуйста, смотрите пример:

df1 = pd.DataFrame({'A': [1,2,3],
                    'B': list('abc'),
                    'C': [3.3,2.7,9.1]})

df2 = pd.DataFrame({'A': [4,5,6],
                    'B': list('def'),
                    'C': [1.7,0.3,2.8]})

df3 = pd.DataFrame({'A': [7,8,9],
                    'B': list('ghi'),
                    'C': [0.3,0.4,0.5]})

dfs = [df1, df2, df3]
names = ['X', 'Y', 'Z']

result = {}

for df, name in zip(dfs, names):
    data = df.to_dict()
    for key, value in data.items():
        result[(name, key)] = value

dff = pd.DataFrame(result)

Теперь dff - это кадр данных с MultiIndex, который выглядит следующим образом:

   X          Y          Z        
   A  B    C  A  B    C  A  B    C
0  1  a  3.3  4  d  1.7  7  g  0.3
1  2  b  2.7  5  e  0.3  8  h  0.4
2  3  c  9.1  6  f  2.8  9  i  0.5

А если вы хотите взять с него фрейм данных Y, вы можете использовать:

dff['Y']
#   A  B    C
#0  4  d  1.7
#1  5  e  0.3
#2  6  f  2.8

Надеюсь, это поможет.

...