у меня есть dataframe («DF»), что эквивалентно:Python панды значения х столбцов подмножество на основе уникальных значений в столбце у
Cat Data
x 0.112
x 0.112
y 0.223
y 0.223
z 0.112
z 0.112
Другими словами у меня есть столбец категории и столбец данных, а также значения данных не изменяются в пределах значений столбца категории, но они могут повторяться между разными категориями (т.е. значения в категориях «x» и «z» одинаковы - 0.112). Это означает, что мне нужно выбрать одну точку данных из каждой категории, а не просто подмножество уникальных значений «Данные».
То, как я сделал это так:
aLst = []
bLst = []
for i in df.index:
if df.loc[i,'Cat'] not in aLst:
aLst += [df.loc[i,'Cat']]
bLst += [i]
new_series = pd.Series(df.loc[bLst,'Data'])
Тогда я могу делать все, что я хочу с ним. Но проблема в том, что это просто похоже на неуклюжий, не-питонический способ делать что-то. Какие-либо предложения?
Наиболее полезным. Благодарю. Хотя я на самом деле хочу только данные, поэтому я думаю, что я в конце концов хочу использовать: new_frame = df.loc [df.drop_duplicates ('Cat'). Index, 'Data'] –
Супер, другое решение - 'print (x.drop_duplicates ('Cat'). drop ('Cat', axis = 1) .squeeze()) 'или' print (x.drop_duplicates ('Cat'). drop ('Cat', axis = 1) [ 'Data']) ' – jezrael