如何将值追加到pandas数据帧的单元格中

2024-10-02 06:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,我在其中创建一个新列并填充其值。根据条件,如果再次遇到该行,则新列需要附加一些值。在

例如,对于给定的数据帧:

测向

id   Stores                  is_open
1   'Walmart', 'Target'      true
2   'Best Buy'               false
3   'Target'                 true
4   'Home Depot'             true

现在,如果我想添加一个新列作为Ticker,它可以是逗号分隔的tickers或list字符串(以更可取和更容易的为准)。在我的端没有偏好)对于给定的逗号分隔存储。在

例如沃尔玛的股票代码是wmt,目标是tgt。我从另一个基于匹配键的dataframe获取的wmttgt数据,因此我尝试按如下方式添加,但并不是所有数据都被赋值,即使它们有值,而且只有一个值后跟一个逗号被分配给Tickers列,而不是多个:

^{pr2}$

预期产量:

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

如果有人能帮我,我会非常感激的。在


Tags: 数据idfalsetruetargethomeisbuy
1条回答
网友
1楼 · 发布于 2024-10-02 06:27:32

您可以使用apply方法和axis=1来传递行并执行计算。参见以下代码:

^{1}$

到目前为止,df

^{pr2}$

查找数据帧:

df2 = pd.DataFrame({'Store':['Walmart', 'Target','Best Buy'], 'Ticker':['wmt','tgt','bby']})
      Store Ticker
0   Walmart    wmt
1    Target    tgt
2  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_list


df['Ticker']=df.apply(add_column, axis=1)

这是df的结果:

                 Store is_open      Ticker
id                                        
1   'Walmart','Target'    true  [wmt, tgt]
2           'Best Buy'   false       [bby]

相关问题 更多 >

    热门问题