我正在处理从电子表格导入的pandas中的一个数据帧,并尝试根据其他列/行的多个条件要求创建一个新列。你知道吗
到目前为止,我用来创建一个名为“斑点”的新列的代码如下:
df['SPOTTED'] = np.where((df['Work_Date'].notnull()) & (df['Time_Code'] == 'WRK'), 'No', ' ')
它在下面的图像中生成输出,创建“SPOTTED”列,并仅用“No”填充列中的行,其中“Time\u Code”列中的值为“WRK”,而“Work\u Date”列中的行不为空/null:
表上代码的当前输出:
我想这样做,但包括在'时间代码'列下的多个类别,除了只是'WRK'。你知道吗
当我尝试以相同的方式将多个“时间码”值作为目标并更新“斑点”列时:
df['SPOTTED'] = np.where((df['Work_Date'].notnull()) & (df['Time_Code'] == 'WRK'), 'No', ' ')
df['SPOTTED'] = np.where((df['Work_Date'].notnull()) & (df['Time_Code'] == 'OFF'), 'No', ' ')
df['SPOTTED'] = np.where((df['Work_Date'].notnull()) & (df['Time_Code'] == 'VAT'), 'No', ' ')
Python只执行其中一行代码并应用于dataframe,而不是应用所有三行代码来创建和更新'SPOTTED'列。你知道吗
我试图最终将数据帧导出到一个CSV文件,一旦我完成并能够得到这个下来。你知道吗
如果有任何帮助/见解,我将不胜感激,因为我仍在学习python和pandas的工作方法。你知道吗
谢谢你!并为任何错误的解释道歉。你知道吗
您共享的分配多个值的代码不起作用的原因是
df['SPOTTED'] =
分配给整个列。因此,代码会不断创建和覆盖同一列。你知道吗下次遇到排序问题时,请尝试在每次操作后查看
df
的内容。你知道吗我相信这是最惯用的解决办法。我偷了@Henry Yik的虚拟数据,希望他们不会介意。你知道吗
这就是数据帧之后的样子:
值被指定为字符串
'No'
,而NaN
则保持不变,等待您对可能的值及其用法的说明。你知道吗相关问题 更多 >
编程相关推荐