Разделение неуникальных значений на уникальные значения в пандах - PullRequest
0 голосов
/ 28 сентября 2018

У меня проблема в том, что мои данные (файл CSV) являются повторяющимися значениями.Но последовательные значения важны друг для друга, а не для другого.Мне нужно сгруппировать строки по одинаковым значениям в столбце, но для значений, которые находятся только рядом друг с другом.
IE для (2,1) = [[0.5, 1.5], [1.2, 2.3], (2,2) = [[1,3, 0,5], [2,5, 1,5]] и т. Д.

     col a          posX           pos y
  0  1               0.5             1.5
  1  1               1.2             2.3
  2  2               1.3             0.5
  3  2               2.5             1.5
  4  3               0.7             0.7
  5  3               1.6             4.0
  6  3               2.1             5.1
  7  1               1.2             2.4
  8  1               1.5             2.5
  9  1               1.6             2.6
  10 2               2.0             1.5

Поэтому (2,1)! = (3,1) они содержат возможно различную длину или другое значение

мои данные большие, 25000 строк, поэтому я не могу быть уверен, что (2,1) не будет происходить более одного раза, поэтому я не могу использовать длину в качестве ключа уникального значения

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

df.groupby['col a']

он объединяет все 1.

спасибо

отредактирован для уточнения ожидаемого результата и дал больше информации

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Так что мне удалось выяснить эту проблему.Я больше привык к Java в университете, поэтому потребовалось некоторое время, чтобы разобраться, что проблема

создать пустое np.Array была трудной.необходимо было знать точный размер массива, который вы пытаетесь инициализировать.Я сделал это, потому что я думал, что лучший способ предварительно заполнить эту пустую строку массива строкой, т. Е. [[x1,y1], [x2,y2]...]

Я сгруппировал значения, которые мне нужно использовать, series = df.groupby(['t', 'col a']) t, чтобы узнать, когда col a сбрасывает

, давая мне Серийный номер длины col a, сброшенный с уникальным ключом (t1, 1), (t2, 1), каждый из которых содержал pd.Dataframe в каждой строке.

скопировал сгруппированные серии в список и зациклилlist

unpacked = [x for x in series]
vec_list = list()             # empty list to store the array
for v in unpacked:
    df = v[1]                 # v[0] is the key and v[1] is the dataframe of the grouped value
    x = df.values             # turns the entire df into np.array! 
    vec_list.append(x)

vec_list будет содержать список сгруппированных np.Array

0 голосов
/ 28 сентября 2018

Мне кажется, нужен помощник Series:

g = df['col a'].ne(df['col a'].shift()).cumsum()
df.groupby(g)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...