如何使用数据框中两个独立列的数据在python中创建新列?

2024-09-30 05:32:24 发布

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

需要使用pandas库在python中编写此SQL update语句的帮助

UPDATE example_table
SET NEW_COLUMN = EXISITNG_COLUMN *2
WHERE SOME_OTHER_EXISTING_COLUMN IN ('Value1','Value2','Value3','Value4')

为了澄清,我想创建一个NEW_COLUMN,它是属于example_tableSQLtable/dataframe的existing_column中的值的乘法。如果不满足where子句中的条件,NEW_COLUMN的值不会更新。这很重要,因为在where条件下,我想用另一个数字乘以另一组值。另外,重要的是要知道我正在检查同一SQLtable/dataframe中SOME_OTHER_EXISTING_COLUMN的条件

我在python中尝试了以下内容,但不知何故,它不起作用:

value_list = ['Value1','Value2','Value3','Value4']
example_table["NEW_COLUMN"] = pd.DataFrame.where( cond= example_table['SOME_OTHER_EXISTING_COLUMN'].isin(value_list), self= example_table['EXISITNG_COLUMN']*2)

旁注:EXISITNG_COLUMN是float,SOME_OTHER_EXISTING_COLUMNstring/object并且NEW_COLUMN应该是float数据类型


Tags: dataframenewexampletablecolumnsomewhere条件
1条回答
网友
1楼 · 发布于 2024-09-30 05:32:24
record = {
    'Age': [21, 19, 20, 18, 17, 21],
    'Stream': ['Math', 'Commerce', 'Science', 'Math', 'Math', 'Science']}

# create a dataframe
dataframe = pd.DataFrame(record, columns=['Age', 'Stream'])

value_list = ['Math','Commerce','Value3','Value4']
dataframe["NEW_COLUMN"] = 2*dataframe['Age'].where(dataframe['Stream'].isin(value_list), 3*dataframe['Age'])

print(dataframe)

当您的列位于声明的列表中时,年龄将乘以2,如果不在列表中,则将乘以3

相关问题 更多 >

    热门问题