我有这个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'], '')