Как переставить отдельные фреймы данных и объединить их в один итоговый фрейм данных? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть следующие фреймы данных:

result=pd.DataFrame({'BID':1.87,'ASK':1.95},index=[0])

result1=pd.DataFrame({'BID':1.95,'ASK':2.05},index=[0])

result2=pd.DataFrame({'BID':1.95,'ASK':2.065},index=[0])

result.index.name='nok'

result1.index.name='sek'

result2.index.name='dkk'

Мне нужно, чтобы эти фреймы данных были в итоговом фрейме данных, который выглядит как показано ниже, с валютой, являющейся именем индекса из предыдущего фрейма данных, а также ставками и запросами. назначены соответствующим столбцам .:

enter image description here

Я попытался создать пустой фрейм данных:

summary=pd.DataFrame(columns=['CURRENCY','BID','ASK'])

и попытался добавитьзначения, но это не сработало.

summary=summary.append({'CURRENCY':result.index.name,'BID':result['BID'],'ASK':result['ASK']})

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Как кто-то предлагал ранее, вы можете объединить кадры данных:

df = pd.concat([result, result1, result2], axis=0, ignore_index=True)

С помощью ignore_index = True это ваша печать:

        BID    ASK
    0  1.87  1.950
    1  1.95  2.050
    2  1.95  2.065

Полезно, если вы хотите сослаться на данные вэтот новый фрейм данных. В противном случае:

df = pd.concat([result, result1, result2], axis=0)

Затем заново создайте метки валют.

 idx = 0   
 df.insert(loc =idx,column = '',value=['nok','sek','dkk'])

 print(df)
         BID    ASK
 0  nok  1.87  1.950
 1  sek  1.95  2.050
 2  dkk  1.95  2.065
0 голосов
/ 05 ноября 2019

То, что вы ищете, это метод Pandas.concat(). Для объединения требуется список фреймов данных и аргумент `axis = 0/1), который определяет, следует ли делать это по строкам или столбцам, соответственно.

Однако вы можете пропустить это, сделав DataFrameначнем с создания соответствующего словаря:

df_dict = {'NOK' : {'BID':1.87,'ASK':1.95},
           'SEK' : {'BID':1.95,'ASK':2.05},
           'DKK' : {'BID':1.95,'ASK':2.065}}

df = pd.DataFrame.from_dict(df_dict, orient = 'index')

Аргумент orient определяет, что ваши начальные значения являются строками (по умолчанию столбцы).

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