我需要在数据框中添加一列。新列“ Bearbeiter”的内容取决于 其他单元格的内容(存储在“ Inhalt”,“ Benutzerfeld 1”和“ Material”列中)。
我尝试用一个函数创建逻辑。基本上是这样的:如果A2 =“ QV”,则在单元格F2中填写“ Vertrieb”,例如诸如“ C2 =“rückschneiden”&“ D2 = Materialnumber以“ 09”开头”之类的内容,请在单元格中填写“人1”。 QM-QV”或“ QV-QM”。还有其他解决方案吗?
我的问题:我总是收到此错误消息:AttributeError:类型对象'str'没有属性'Combined
import pandas as pd
import numpy as np
from openpyxl import Workbook
Q_Stock = pd.read_excel("C:\\Users\\Lucas\\Desktop\\Excel_Test\\Q Bestand.xlsx",usecols=["Bestandsqualifikation", "Inhalt", "Benutzerfeld 1", "Benutzerfeld 2","Material", "Externer Barcode 2", "Handling Unit"])
""" Q_Bestand["Bearbeiter"] = "" """
Q_Stocknew = Q_Stock[0:-1]
S_Stock = pd.read_excel("C:\\Users\\Lucas\\Desktop\\Excel_Test\\S Bestand.xlsx",usecols=["Bestandsqualifikation", "Inhalt", "Benutzerfeld 1", "Benutzerfeld 2","Material", "Externer Barcode 2", "Handling Unit" ])
""" S_Bestand["Bearbeiter"] = "" """
S_Stocknew = S_Stock[0:-1]
complete_list = [S_Stocknew, Q_Stocknew]
Combined = pd.concat(complete_list)
""" new_df = Combined[Combined["Inhalt"].str.contains("QV", na = False)]"""
""" Combined["Bearbeiter"] = np.where(Combined["Inhalt"].str.contains("QP"), "Produktion", np.nan)"""
"""Combined["Bearbeiter"] = np.where(Combined["Inhalt"].str.contains("QV"), "Vertrieb","manuell einzutragen") """
**def bar(Combined):
if Combined['Inhalt'] ==np.nan:
return np.nan
elif Combined[Combined["Inhalt"].str.contains("QV", na = False)]:
return "Vertrieb"
elif Combined[Combined["Inhalt"].str.contains("QP", na = False)]:
return "Produktion"**
Combined['Bearbeiter'] = Combined.apply(bar, axis = 1)
"""print(new_df)
print(type (Combined["Inhalt"]))"""
Combined.to_excel(r'C:\\Users\Lucas\\Desktop\\Excel_Test\\Test.xlsx', index = True)