【问题标题】:Append Value in Column to Start of another Column that contains a list将列中的值附加到包含列表的另一列的开头
【发布时间】:2019-04-14 18:06:25
【问题描述】:

我有一个包含以下值的数据框

    Keyword             Synonyms
0   fuzz                [hair, copper, pig, bull, cop, blur]
1   napkins             [table]
2   rationalizations    [systematization, rationalization]
3   grandmasters        [grandmaster]
4   rehearsing          [practice]

为了在后续步骤中创建下拉菜单,我如何将关键字列中的值附加到同义词列中每个列表的开头?

我的代码如下所示:

df['Synonyms'] = pd.concat([df['Keyword'].append(df['Synonyms'])

【问题讨论】:

  • 预期输出是什么?
  • @Wen-Ben,认为他们想保留列表列,但将关键字作为第一个元素添加到同义词中的每个列表中。可能不是骗子,但请再看一看。
  • @coldspeed 随时添加您的解决方案并重新打开它

标签: python python-3.x pandas dataframe lambda


【解决方案1】:

列表理解怎么样?在python3中,您可以使用扩展的可迭代解包来高效地创建新列表。

# df['Synonyms'] = [[x, *y] for x, y in df[['Keyword'], 'Synonyms']].values]
df['Synonyms'] = [[x, *y] for x, y in zip(df['Keyword'], df['Synonyms'])]
df

            Keyword                                           Synonyms
0              fuzz         [fuzz, hair, copper, pig, bull, cop, blur]
1           napkins                                   [napkins, table]
2  rationalizations  [rationalizations, systematization, rationaliz...
3      grandmasters                        [grandmasters, grandmaster]
4        rehearsing                             [rehearsing, practice]

这是map 的有趣替代方案:

k = iter(df['Keyword'].tolist())
df['Synonyms'] = df['Synonyms'].map(lambda x: [next(k), *x])
df

            Keyword                                           Synonyms
0              fuzz         [fuzz, hair, copper, pig, bull, cop, blur]
1           napkins                                   [napkins, table]
2  rationalizations  [rationalizations, systematization, rationaliz...
3      grandmasters                        [grandmasters, grandmaster]
4        rehearsing                             [rehearsing, practice]

【讨论】:

    【解决方案2】:

    如果是这样的话

    df['Keyword'].apply(lambda x : [x])+df['Synonyms']
    

    【讨论】:

      猜你喜欢
      • 2015-02-04
      • 2022-12-31
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 2018-09-01
      • 2021-11-03
      • 2022-12-06
      • 1970-01-01
      相关资源
      最近更新 更多