Pandas:使用 apply 将特定列中的行值复制到新列中

Posted

技术标签:

【中文标题】Pandas:使用 apply 将特定列中的行值复制到新列中【英文标题】:Pandas: Using apply to copy row values across specific columns into new column 【发布时间】:2019-09-12 22:01:30 【问题描述】:

我正在尝试使用 apply 函数将行子集的所有值复制到新列中,但它似乎只是复制了整个数据框范围。结果,我收到了数据帧的该子集,尽管我希望 df.loc[index, 'consolidated_commentary'] 包含 all_commentary_columns 中包含的列中文本的串联版本

我的代码是:

 for index, row in df[all_commentary_columns].iterrows():
if pd.isna(row).prod():
    df.loc[index, 'new_col'] = 'good'
else:
    df.loc[index, 'new_col'] = 'bad'
    df.loc[index, 'consolidated_commentary'] = df[all_commentary_columns].apply(lambda x: x.loc[all_commentary_columns], axis=1)

【问题讨论】:

.loc[index] 中的 index 是什么?请提供您的示例数据和预期输出。 @QuangHoang 更新了! 看到这个答案:***.com/questions/44497671/… 【参考方案1】:

我从我在 cmets 中引用的答案中提取了这个:

df.loc[index, 'consolidated_commentary'] = df.loc[index, all_commentary_columns].astype(str).apply(lambda x: ' '.join(' '.join(x).split()),axis=1)

【讨论】:

谢谢你,虽然它似乎没有按预期连接行值:/

以上是关于Pandas:使用 apply 将特定列中的行值复制到新列中的主要内容,如果未能解决你的问题,请参考以下文章

Pandas GroupBy 并选择特定列中具有最小值的行

比较熊猫数据框中的行值

比较熊猫数据框中的行值

使用 Pandas 查找列的最大值并返回相应的行值

从Array1中的特定行值中减去Array2中的行值

在列中查找字母并提取包含特定字母的行