В настоящее время пытаются изменить некоторые рыночные значения в кадре данных, если какое-либо значение присутствует в другом столбце. Я знаком только с пониманием списков для создания новых столбцов, но не уверен, что это возможно сделать таким образом.
Я попробовал следующую функцию, хотя она не работает:
def multiply_with(x):
if df['a'] in list_multiple_double:
x = x * 0.5
elif df['a'] in list_multiple_triple:
x = x * 0.33
else:
x = x
return x
Я пытался применить это к столбцу рыночной стоимости, но безуспешно.
Предположим, что в pd.dataframe есть два столбца a и b, и я хотел бы создать c. Также допустим 2 списка, list_a
и list_b
. Для каждого наблюдения, если a
присутствует в list_a
, умножьте на 0,5 и верните это в столбце c
. Если a
присутствует в list_
b, умножьте на 0,333 и верните в c
. Если нет, либо верните a
в c
. Мне нужно следующее:
list_a = ['Denmark Sweden', 'Norway Sweden']
list_b = ['Denmark Sweden Norway']
values = [200,300,500,1000,200]
country = ['Denmark', 'Denmark Sweden', 'Denmark Sweden Norway', 'Sweden', 'Norway']
values_adj = [200, 150, 166.67, 1000, 200]
df = pd.DataFrame()
df['values'] = pd.Series(values)
df['country'] = pd.Series(country)
df['values_adj'] = pd.Series(values_adj)