У меня есть фрейм данных, в котором я создаю новый столбец и заполняю его значение. Исходя из условия, к новому столбцу необходимо добавить некоторые значения, если эта строка встретится снова.
Например, для данного кадра данных:
DF
id Stores is_open
1 'Walmart', 'Target' true
2 'Best Buy' false
3 'Target' true
4 'Home Depot' true
Теперь, если я хочу добавить новый столбец как Ticker
, который может быть строкой тикеров или списком через запятую (в зависимости от того, что предпочтительнее и проще. Никаких предпочтений на моем конце) для заданных магазинов, разделенных запятыми.
Так, например, тикер Walmart wmt
и цель tgt
. Данные wmt
и tgt
, которые я получаю из другого фрейма данных на основе соответствующего ключа, поэтому я попытался добавить их следующим образом, но не все из них назначены, даже если они имеют значения, а для * назначено только одно значение, за которым следует запятая Tickers
столбец и не несколько:
df['Tickers'] = ''
for _, row in df.iterrows():
stores = row['Stores']
list_stores = stores(',')
if len(list_stores) > 1:
for store in list_stores:
tmp_df = second_df[second_df['store_id'] == store]
ticker = tmp_df['Ticker'].values[0] if len(tmp_df['Ticker'].values) > 0 else None
if ticker:
df.loc[
df['Stores'].astype(str).str.contains(store), 'Ticker'] += '{},'.format(ticker)
Ожидаемый результат:
id Stores is_open Ticker
1 'Walmart', 'Target' true wmt, tgt
2 'Best Buy' false bby
3 'Target' true tgt
4 'Home Depot' true nan
Я был бы очень признателен, если бы кто-нибудь мог помочь мне здесь.