我有一个pandas dataframe,需要根据dataframe中其他列的值创建新列。这是数据帧
人城市国家国家
美国伊利诺伊州芝加哥
美国亚利桑那州凤凰城B酒店
C美国加利福尼亚州圣地亚哥
我想根据state中的值创建两个新列
我试过了
df.loc[((df['state'] == 'Illinois')), 'city-north'] = df['city']
df.loc[((df['state'] != 'Illinois')), 'city-south'] = df['city']
但是不等于条件的第二行代码没有创建“城市南方”列。请帮帮忙
我认为你的代码应该可以正常工作。
df.loc[df['state'] == 'Illinois', 'city-north'] = df['city']
df。loc[df['state']!='Illinois','city south']=df['city']
我甚至尝试了多种条件和新的输入,这些输入不在原始数据框中,并且仍然工作如下:
df.loc[(df['州'] == '伊利诺伊州')
df。loc[(df[‘州’!=‘伊利诺伊州’)
请注意,我的回答的第二部分是在多个条件下显示更清晰的内容,并且仍然有效。它可用于添加具有新条目的新列。
对于我工作良好,如果没有匹配条件被创建缺失值:
df.loc[df['state'] == 'Illinois', 'city-north'] = df['city']
df.loc[df['state'] != 'Illinois', 'city-south'] = df['city']
print (df)
person city state country city-north city-south
0 A Chicago Illinois USA Chicago NaN
1 B Phoenix Arizona USA NaN Phoenix
2 C San Diego California USA NaN San Diego
如果不匹配的行需要空值字符串:
df['city-north'] = np.where(df['state'] == 'Illinois', df['city'], '')
df['city-south'] = np.where(df['state'] != 'Illinois', df['city'], '')
print (df)
person city state country city-north city-south
0 A Chicago Illinois USA Chicago
1 B Phoenix Arizona USA Phoenix
2 C San Diego California USA San Diego
我有两个熊猫数据框 步骤2:对于flag=1的行,AA_new将计算为var1(来自df2)*组“A”和val“AA”的df1的'cal1'值*组“A”和val“AA”的df1的'cal2'值,类似地,AB_new将计算为var1(来自df2)*组“A”和val“AB”的df1的'cal1'值*组“A”和val“AB”的df1的'cal2'值 我的预期输出如下所示: 以下基于其他stackflow
我有以下数据帧: 我需要删除等于的行。最有效的方法是什么?
问题内容: 所以,这是我的数据框 我还有另一个清单: 如果x.Country位于欧洲,我想创建一个新列“ Continent” 问题答案: 或者您可以直接 使用
我想在Pandas数据集中创建一个新列,基于另外两个列的值。 现在,应该如下所示: 有什么帮助吗?
基于dataframe列val_1值,查看其他列col_0-10标签前缀,然后创建另一列Mycl。 数据帧看起来像: 应用逻辑后所需的数据帧: 我是trid,但这不起作用:df['mycol']=df['col'df['val_1']。aType(str)] DDL生成DataFrame: 谢谢!
我有一个事件日志数据框,每行是一个事件(如查看项目),其中包含列,,以及用户分配项目的。我想创建一个表示所有用户-项目交互的数据框:表示为二维矩阵,每个(i,j)表示用户i和项目j的分数(下图截图)。如果用户尚未看到该产品,则分配NaN。 我试过用循环做这件事,但正如预期的那样,运行时间太长: 有没有更快的方法? 根据评论中的要求,我的数据帧的头部<代码>事件类型与上述分数类似。