【发布时间】:2019-05-13 05:44:25
【问题描述】:
我想在新行中将“A”列中的值添加到“B”列中,前提是“A”列中的相应值不包含在“B”列中。
我的数据框:
df
A B
value1 value4
value1
value1 value4\nvalue1\n
value2 value4\nvalue7\n
value2 value4\n
value3
value3 value4\nvalue3\nvalue6
value3 value2\nvalue1
value3 value3\nvalue1\nvalue6
所以,我想要的数据框
df
A B
value1 value4\nvalue1
value1 value1
value1 value4\nvalue1
value2 value4\nvalue7\nvalue2
value2 value4\nvalue2
value3 value3
value3 value4\nvalue3\nvalue6
value3 value2\nvalue1\nvalue3
value3 value3\nvalue1\nvalue6
此外,问题是有时在“B”列中的字符串末尾,存在 \n 有时不存在。
我尝试使用df.A.str.contains(df["A"]),但当contains() 有数据框列时它不起作用。我认为这样的事情可以工作:df.B.str.extract('(%s)' % '|'.join(df.A)),这仅适用于“B”列中存在的“A”列中的值 - 用于匹配,我不知道如何适应我的问题。
【问题讨论】:
-
这是一个乱七八糟的问题。为了更好地帮助您,我们需要查看
df.head(10).to_dict()的输出。
标签: python pandas dataframe join contains