创建列并用函数填充

时间:2020-05-20 12:30:01

标签: python excel pandas

我需要在数据框中添加一列。新列“ 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)

0 个答案:

没有答案