如何根据另一个dataframe列中的条件返回多列中的值

2024-09-30 12:32:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个主数据框,比如DF1,它包含列值、类别、子类别、组和文本。我需要验证每个组和文本列是否有正确的类别和子类别

我有另一个数据框,比如说DF2,它有相同的4列,预期组和关键字的类别和子类别在文本列中可用

DF1:

^{tb1}$

DF2:

^{tb2}$

我需要根据DF2值在DF1中添加预测类别和子类别。示例if 条件1:

DF1['Group'] is G6 , DF1['predictedCategory']=='Sweet' and DF1['predictedSubcategory'] == 'Cake'

条件2:

DF1['Group'] is G1 or G5 and DF1['Text'] contains blue or dark and white, DF1['predictedCategory']=='chocolate' and DF1['predictedSubcategory'] == 'DairyMilk'.

我尝试使用多个条件编写if-else语句,但它在预测列中返回空


Tags: orand数据文本ifisgroup关键字
1条回答
网友
1楼 · 发布于 2024-09-30 12:32:27
for index, item in df1.iterrows():
for i in range (0,l):
    if   ((item['Group'] in df2.iloc[i,2]) & pd.isnull(df2['Text'].iloc[i])):
        val = df2.iloc[i,0]
    elif ((item['Group'] in df2.iloc[i,2])):
        if df2.iloc[i][3] != '':
            list = df2.iloc[i][3].split(',')
            for elem in list:
                if(elem in item['Text']):
                    val = df2.iloc[i,0]
df1.at[index,'Predicted'] = val 

相关问题 更多 >

    热门问题