У меня есть следующие dataframe:Как извлечь значения кортежа в dataframe pandas для использования matplotlib?
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x = np.arange(10)
x = np.concatenate((x,x))
y = []
for i in range(2):
y.append(np.random.random_integers(0,10,20))
d = {'A': [(x[i], y[0][i]) for i in range(20)],
'B': [(x[i], y[1][i]) for i in range(20)]}
df = pd.DataFrame(d, index = list('aaaaaaaaaabbbbbbbbbb'))
ДФ
A B
a (0, 2) (0, 10)
a (1, 0) (1, 8)
a (2, 3) (2, 8)
a (3, 7) (3, 8)
a (4, 8) (4, 10)
a (5, 2) (5, 0)
a (6, 1) (6, 4)
a (7, 3) (7, 9)
a (8, 4) (8, 4)
a (9, 4) (9, 10)
b (0, 0) (0, 3)
b (1, 2) (1, 10)
b (2, 8) (2, 3)
b (3, 1) (3, 7)
b (4, 6) (4, 1)
b (5, 8) (5, 3)
b (6, 1) (6, 4)
b (7, 1) (7, 1)
b (8, 2) (8, 7)
b (9, 9) (9, 3)
Как сделать следующие участки?
Участок 1 находится в столбце «A», 2 строки (одна строка для индекса = a, другая для индекса = b), значения x являются первыми элементами кортежей. y - это 2-й элемент кортежа.
Участок 2 находится на column'B», остальное же, как и сюжет 1.
Я не могу понять, как я могу извлечь значения из кортежей в dataframe.
Кроме того, группа будет полезна в этом случае?
В действительности у меня около тысячи столбцов данных, 5 групп, каждая группа ~ 500 строк. Поэтому я ищу быстрый способ решения этой (размер dataframe ~ 2500 х 1000)
Спасибо большое
Вы, возможно, придется возиться немного, но что-то вроде 'np.rollaxis (np.vstack (df.values.flatten()) .reshape (2, 20, 2), 2) 'может получить вам 3D-массив, который вы можете легко индексировать, чтобы точно указать данные, которые вы хотите построить (и, возможно, вы можете получить эту строку немного короче и читабельнее также). – Evert