Как я могу добавить значение наблюдения в столбце с наблюдением из другого столбца - PullRequest
0 голосов
/ 02 апреля 2020

Привет, ребята, у меня есть эта проблема. Кто может помочь мне с кодом или алгоритмом, который возьмет fd.loc [0, 'value 4'] и добавит его в fd.loc [1, 'value 2], чтобы получить вывод fd.loc [1, 'value 4'], по сути, я хочу, чтобы каждое наблюдение в значении 4 было суммой его предыдущего наблюдения и соответствующего наблюдения в значении 2 (я надеюсь, правильно объясню свою проблему)

dict = {
'value 1' : [1,2,3],
'value 2' : [4,5,6]
}

fd = pd.DataFrame(dict)
fd['value 4'] = 10 + fd['value 2']
fd

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Если столбец 'value 4' уже существует и вы хотите преобразовать эти значения, как вы описываете, вы можете сделать это следующим образом:

fd['value 4'] = fd['value 2'] + fd['value 4'].shift()

Тогда вам просто нужно будет переназначить fd.loc[0, ‘value 4’], который теперь равен NaN и, возможно, преобразует весь столбец в целое число, поскольку он был преобразован в число с плавающей точкой из-за пропущенного значения.

0 голосов
/ 02 апреля 2020

Я не совсем уверен, чего вы хотите достичь, но вот несколько способов:

Добавить сумму двух столбцов в один столбец, строка за строкой:

fd.loc[index]['value 4'] = fd.loc[index]['value 1'] + fd.loc[index]['value 2']

Добавьте столбец, где значение в каждой строке является суммой двух столбцов:

fd['value 4'] = fd['value 1'] + fd['value 2']

Вы также можете использовать лямбда-функцию с apply :

fd['value 4'] = fd.apply(lambda row: row['value 1'] + row['value 2'], axis=1)

Я надеюсь, что это отвечает на ваш вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...