Заменить строку, выбранную значением, на другую строку, выбранную значением в кадре данных - PullRequest
0 голосов
/ 14 февраля 2019

Вот мой код:

import pandas as pd
import numpy
from quilt.data.bussiere import test
ar = numpy.array([[1.1, 2, 3.3, 4], [2.7, 10, 5.4, 7], [5.3, 9, 1.5, 15]])
df = pd.DataFrame(ar, index = ['a1', 'a2', 'a3'], columns = ['A', 'B', 'C', 'D'])
df.loc[df['A'] == 5.3] = df.loc[df['A'] == 2.7] 
df

И в результате получается строка из NaN:

     A        B      C       D
a1  1.1     2.0     3.3     4.0
a2  2.7     10.0    5.4     7.0
a3  NaN     NaN     NaN     NaN

Как правильно ее заменить?

1 Ответ

0 голосов
/ 14 февраля 2019

pandas чувствителен к индексу, и df.loc[df['A'] == 5.3] и df.loc[df['A'] == 2.7] равны pandas object, поэтому при назначении будет учитываться index, поскольку один из индексов равен a2, а другой -а3, вот почему вы получили NaN

df.loc[df['A'] == 5.3] = df.loc[df['A'] == 2.7] .values # using value here,without the index match assign
df
Out[137]: 
      A     B    C    D
a1  1.1   2.0  3.3  4.0
a2  2.7  10.0  5.4  7.0
a3  2.7  10.0  5.4  7.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...