Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 删除包含特定文本的行_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 3.x 删除包含特定文本的行

Python 3.x 删除包含特定文本的行,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我的目标是获得列的值的组合。比如说, UT水果1水果2水果3 0 I1苹果橙桃 1 I2苹果柠檬南 2 I3红星苹果橙 在这个dataframe中,我想要组合Fruit_*列的值。结果是(苹果,橙色),(苹果,桃子),(橙色,桃子) 如您所见,数据帧具有NaN。因此,在组合工作之后,我将删除带有特定文本“nan”的行。通过阅读一些与此任务相关的帖子,我编写了以下代码 将熊猫作为pd导入 将numpy作为np导入 从itertools导入组合 df=pd.DataFrame([['I1','Ap

我的目标是获得列的值的组合。比如说,

UT水果1水果2水果3
0 I1苹果橙桃
1 I2苹果柠檬南
2 I3红星苹果橙
在这个dataframe中,我想要组合Fruit_*列的值。结果是(苹果,橙色),(苹果,桃子),(橙色,桃子)

如您所见,数据帧具有NaN。因此,在组合工作之后,我将删除带有特定文本“nan”的行。通过阅读一些与此任务相关的帖子,我编写了以下代码

将熊猫作为pd导入
将numpy作为np导入
从itertools导入组合
df=pd.DataFrame([['I1','Apple','Orange','Peach'],
['I2','Apple','Lemon',np.NAN],
['I3'、'Starfruit'、'Apple'、'Orange'],
列=['UT'、'Fruit_1'、'Fruit_2'、'Fruit_3'])
temp1=df.set_索引('UT')
temp2=temp1.apply(lambda x:list(组合(x,2)),1)
temp3=temp2.apply(λx:pd.系列(x))
temp4=temp3.stack().reset_索引(级别=[0,1])
del temp4[“1级”]
temp4.columns=['UT','pair']
temp4[~temp4.pair.str.contains('nan')]
但是,运行此代码后,我收到一条错误消息:

TypeError:输入类型不支持ufunc“invert”,并且无法根据强制转换规则“safe”将输入安全强制为任何支持的类型


如何解决此错误?

对于熊猫0.25,可以使用技巧删除
组合中的
NaNs
,方法是通过
列表理解过滤掉它们,因为
np.NaN!=np.NaN
作者:

对于较旧版本:

temp4 = (df.set_index ('UT')
          .stack()
          .groupby(level=0)
          .apply(lambda x: pd.Series(list(combinations (x, 2))))
          .reset_index(level=1, drop=True)
          .reset_index(name='pair'))

print (temp4)
   UT                 pair
0  I1      (Apple, Orange)
1  I1       (Apple, Peach)
2  I1      (Orange, Peach)
3  I2       (Apple, Lemon)
4  I3   (Starfruit, Apple)
5  I3  (Starfruit, Orange)
6  I3      (Apple, Orange)

对于熊猫,0.25可能与技巧一起使用,通过使用过滤器过滤掉组合中的
NaNs
,因为
np.NaN!=np.NaN
作者:

对于较旧版本:

temp4 = (df.set_index ('UT')
          .stack()
          .groupby(level=0)
          .apply(lambda x: pd.Series(list(combinations (x, 2))))
          .reset_index(level=1, drop=True)
          .reset_index(name='pair'))

print (temp4)
   UT                 pair
0  I1      (Apple, Orange)
1  I1       (Apple, Peach)
2  I1      (Orange, Peach)
3  I2       (Apple, Lemon)
4  I3   (Starfruit, Apple)
5  I3  (Starfruit, Orange)
6  I3      (Apple, Orange)