Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 需要一个dataframe函数来标识相等的字符串,然后分配给新列_Python 3.x_String_Pandas_Function - Fatal编程技术网

Python 3.x 需要一个dataframe函数来标识相等的字符串,然后分配给新列

Python 3.x 需要一个dataframe函数来标识相等的字符串,然后分配给新列,python-3.x,string,pandas,function,Python 3.x,String,Pandas,Function,我用另外两个的部分制作了一个熊猫df: 这是我想做的伪代码。 4列数据帧,所有列中的值都是单个字。 cols A B C D我想要这个:cols A B C D E F 在pseudcode中: (A)在一份; 如果s等于D中的任何字符串(不是子字符串); 向E(新列)写入“是”,否则向E写入“否”; 如果B中的str(与s相同的行)等于C中的str(与D中的字符串相同的行),则将“是”写入F(新列) 否则,请将“否”写入F) 下面的代码可以工作,但现在我需要一个函数来完成上面描述的工作: co

我用另外两个的部分制作了一个熊猫df: 这是我想做的伪代码。 4列数据帧,所有列中的值都是单个字。 cols A B C D我想要这个:cols A B C D E F 在pseudcode中: (A)在一份; 如果s等于D中的任何字符串(不是子字符串); 向E(新列)写入“是”,否则向E写入“否”; 如果B中的str(与s相同的行)等于C中的str(与D中的字符串相同的行),则将“是”写入F(新列) 否则,请将“否”写入F) 下面的代码可以工作,但现在我需要一个函数来完成上面描述的工作:

cols = [1,2,3,5]
df3.drop(df3.columns[cols],axis=1, inplace=True)
df4.drop(df4.columns[1],axis=1, inplace=True)
listi = [df4]
listi.append(df3)
df5 = pd.concat(listi, axis = 1)
它应该是如果i)如果x['A']==x['D']和ii)如果x['B']==x['C'],并且我还需要添加G列,这是在C中找到的字符串,或者如果没有找到字符串

以下是一个小样本数据集和预期结果:

A B C D
cats cat cat cats
went be have had
tried try enter entering
entering enter try tried
预期结果

A B C D E F G 
cats cat cat cats yes yes cat 
went be have had no no tried 
try entering entering yes no try 
entering enter try tried yes no entering

G列是在C中找到的单词,如果该单词是在其他地方找到的

据我所知,您可以将lamda应用于您的数据帧

无论如何,我建立了一个小例子

import pandas as pd
df = pd.DataFrame([['a','a','a','b'],['b','c','b','b'],['d','d','d','g'],['j','j','c','d']],[1,2,3,4], columns=['A','B','C','D'])
df
#    A  B   C   D
#1   a  a   a   b
#2   b  c   b   b
#3   d  d   d   g
#4   j  j   c   d
df['E']=df.apply(lambda x: 'yes' if x['A'] == x['B'] else 'no', axis=1)
df['F']=df.apply(lambda x: 'yes' if x['C'] == x['D'] else 'no', axis=1)
df
#   A   B   C   D   E   F
#1  a   a   a   b   yes no
#2  b   c   b   b   no  yes
#3  d   d   d   g   yes no
#4  j   j   c   d   yes no

你能提供一个小数据集和一个使用该数据集的例子吗?Paul,我不确定我是否理解你的例子,第一行是关于猫的,没关系,第二行我理解E列和F列,但不理解G列,你能回顾一下吗,因为我认为这里缺少了一些东西?嗨,我稍后会回来告诉你缺少什么。缺少了一些东西-最好给出完整的预期结果行。前四列的输入和输出是相同的。第2行过去、现在、过去、过去、现在、过去、现在、过去、过去、过去、过去、过去、过去、过去、过去第3行尝试、尝试、进入、是、是、是、是、尝试:第4行进入、进入、进入、尝试、尝试、是、是、进入。与原版相比有一处改动,但我们将继续使用最新版本。