熊猫df无法识别列的长度



我有这个df:

columns = ['Item', 'Quant', 'Cost', 'Tot_Cost']
- 0   Item              5382 non-null   object 
- 1   Quantity          4756 non-null   object 
- 2   Unit_Measurement  4757 non-null   object 
- 3   Unit_cost         4753 non-null   object
- 4   Total_cost        5065 non-null   object

在上从Jupyter复制df.info()的尝试不好

我想搜索df["Item"],如果它包含r'(?I(乘积,则在df["Item"]中创建一个带有字符串的新列。

当我运行一些代码来检查它是否能正常工作时:

bill_df['Product'] = [bill_df['Item'].str.contains(r'(?i)Product',na=False)]

也尝试了bill_df.loc[:,"Item"]以防万一

我得到的是:值的长度(1(与索引的长度(5383(不匹配

当我最初尝试for循环时,我注意到了这一点,我将其设置为";"错误";在新列中,但它不会填充5个值。

有人见过这个吗?

这是一个条件语句的例子,可以使用numpy函数np.where轻松处理

import numpy as np
bill_df['Product'] = np.where(bill_df['Item'].str.contains(r'(?i)Product', na=False), bill_df['Item'], '')

最新更新