python - 如何从具有条件的另一列中提取值?

标签 python pandas data-manipulation

我想根据另一列中的值创建一个列。我找到了这个approach ,但我认为这不会起作用,因为我需要在“抽象”数据之前检查所有“Unique_String”值。

我想要什么?

我想“循环”(?)我的“文本”列,看看是否有可用数据。如果没有,它应该查看“Unique_String”列,并抽象(如果可用)值,并将其粘贴到“文本”列中。

数据

我有一个像这样的数据框:

Unique_String                 Text 
AAA                           Here is text! 
AAA                           nan
BBB                           nan
BBB                           Here is text as well! 
BBB                           Feyenoord
CCC                           nan
CCC                           nan

所需的输出是:

Unique_String                 Text 
AAA                           Here is text! 
AAA                           Here is text!
BBB                           Here is text as well!
BBB                           Here is text as well! 
BBB                           Feyenoord
CCC                           nan
CCC                           nan 

非常感谢!

最佳答案

这里是每组必要的前向和后向填充调用函数:

df['Text'] = df.groupby('Unique_String')['Text'].apply(lambda x: x.ffill().bfill())
print (df)
  Unique_String                   Text
0           AAA          Here is text!
1           AAA          Here is text!
2           BBB  Here is text as well!
3           BBB  Here is text as well!
4           BBB              Feyenoord
5           CCC                    NaN
6           CCC                    NaN

关于python - 如何从具有条件的另一列中提取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57670859/

相关文章:

Python 和西里尔字母表

r - iGraph 中的着色节点

r - 对于每个 ID,返回 r 中起始列的最早日期和结束列的最晚日期

使用 R (dplyr) 中的多个变量将宽数据 reshape 为长数据

Python - 将德语变音符号音译为变音符号

pandas - 计算列表中的每个项目在以逗号分隔的值的pandas数据框列中出现的次数

python - 测试来自串行端口的字节

python - 使用 Pandas 计算数据框中列的总和

python - 我怎样才能让我的代码生成相似但仍然不同的结果而不需要全部输入?

python - 防止在 Python 驱动的 PhantomJS/Selenium 中下载 CSS/其他资源