我有一个数据框,在其中创建新列并填充其值。根据条件,如果再次遇到该行,则新列需要附加一些值。因此,例如对于给定的数据帧:dfid Stores is_open1 'Walmart', 'Target' true2 'Best Buy' false3 'Target' true4 'Home Depot' true现在,如果我想添加一个新列作为Ticker,它可以是给定逗号分隔的商店的逗号分隔的行情自动收录器或列表字符串(以更好和更容易为准。例如,沃尔玛的股票代号为wmt,目标为tgt。我从另一个基于匹配键的数据框中获取的wmt和tgt数据,因此我尝试添加如下内容,但是即使它们具有值并且仅将一个值后跟逗号的值分配给了列而不是多个: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 Ticker1 'Walmart', 'Target' true wmt, tgt2 'Best Buy' false bby3 'Target' true tgt4 'Home Depot' true nan如果有人可以在这里帮助我,我将不胜感激。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 您可以将apply方法与axis=1一起使用以传递行并执行计算。请参见下面的代码:import pandas as pdmydict = {'id':[1,2],'Store':["'Walmart','Target'","'Best Buy'"], 'is_open':['true', 'false']}df = pd.DataFrame(mydict, index=[0,1])df.set_index('id',drop=True, inplace=True)到目前为止的df: Store is_openid1 'Walmart','Target' true2 'Best Buy' false查找数据框:df2 = pd.DataFrame({'Store':['Walmart', 'Target','Best Buy'], 'Ticker':['wmt','tgt','bby']}) Store Ticker0 Walmart wmt1 Target tgt2 Best Buy bby这是添加列的代码:def add_column(row): items = row['Store'].split(',') tkr_list = [] for string in items: mystr = string.replace("'","") tkr = df2.loc[df2['Store']==mystr,'Ticker'].values[0] tkr_list.append(tkr) return tkr_listdf['Ticker']=df.apply(add_column, axis=1)这是df的结果: Store is_open Tickerid1 'Walmart','Target' true [wmt, tgt]2 'Best Buy' false [bby]关于python - 如何在 Pandas 数据框中将值附加到单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55035636/ (adsbygoogle = window.adsbygoogle || []).push({});
10-09 18:47