извлечение значений в одной строке данных на основе значения в другом - PullRequest
0 голосов
/ 03 марта 2019

У меня есть несколько DataFrames, каждый из которых содержит строку с именем «location» и другую строку с именем «value» (оба составляют индекс).например, предположим, что у меня есть следующие 2:

df1 = pd.DataFrame(np.array([[-4,2,5],['nyc','sf','chi']]), columns=['col1','col2','col3'], index=['value','location'])

df2 = pd.DataFrame(np.array([[5,0,-3],['nyc','sf','chi']]), columns=['col1','col2','col3'], index=['value','location'])

DataFrames будут размещены в словаре, через который я могу перебирать.В конечном счете, я хочу получить список «значений для каждого» местоположения в отдельном DataFrame.поэтому желаемый результат будет выглядеть так:

enter image description here

это игрушечный пример, в то время как мой реальный будет иметь гораздо больше DataFrames, а исходные DataFrames будут иметьдругие строки, кроме двух ключевых, меня интересуют

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Использование merge

df1.T.merge(df2.T,on='location').set_index('location').T
location nyc sf chi
value_x   -4  2   5
value_y    5  0  -3
0 голосов
/ 03 марта 2019

Я бы порекомендовал set_index и concat:

(pd.concat([df.T.set_index('location')['value'] for df in [df1, df2]], axis=1)
   .T
   .reset_index(drop=True))

location nyc sf chi
0         -4  2   5
1          5  0  -3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...