基于Monster 组和GPT的调写:
定义一个函数,输入一个字符串和一个供应商字典,输出该字符串中该供应商字典内字符出现的次数。
def count_supplier(string, supplier_dict):
count = 0
for value_list in supplier_dict.values():
for value in value_list:
if value in string:
count += 1
return count
对dataframe中的字符串列进行处理,先按照"; "进行分割,再调用count_supplier函数进行计数,最后将结果放入新的两列中。
import pandas as pd
# 定义供应商字典
supplier_dict = {
"Supplier A": ["A1", "A2"],
"Supplier B": ["B1", "AS"]
}
# 定义函数
def count_supplier(string, supplier_dict):
count = 0
for value_list in supplier_dict.values():
for value in value_list:
if value in string:
count += 1
return count
# 读取数据
df = pd.read_csv('data.csv')
# 分割字符串并计数
df['split'] = df['index'].str.split('; ')
df['supplier A'] = df['split'].apply(lambda x: sum([count_supplier(s, supplier_dict) for s in x if s]))
df['supplier B'] = df['split'].apply(lambda x: sum([count_supplier(s, supplier_dict) for s in x if s]))
# 删除中间列并输出结果
df.drop('split', axis=1, inplace=True)
print(df)