Pandas:如果不写专栏的话

2024-09-24 22:18:40 发布

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

我想定义一个列,如果另一列中包含的日期等于某个特定的数据,我想在其中放入1或0。在

DF[['column_i']]= 0 if DF[['column_j']] == '1983-11-08' else 1

由于返回错误,操作似乎不是单音定义的:

Traceback (most recent call last):   File "<pyshell#150>", line 1, in
<module>
    Accounts_conFatt_SR_TRAFF[['Churn']]= 0 if Accounts_conFatt_SR_TRAFF[['Deactive Date']] == '1970-01-01' else 1  
File "C:\Program
Files\Anaconda\lib\site-packages\pandas\core\generic.py", line 887, in
__nonzero__
    .format(self.__class__.__name__)) ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or
a.all().

是虫子还是我做错了什么?在

ps=类型没有问题:我已经尝试对单个DF['column'][0]值执行if操作,而且效果很好。在


Tags: 数据indfif定义错误linecolumn
2条回答

在这种情况下(当您需要零或一时),您可以这样做:

DF[['column_i']] = (DF[['column_j']] != '1983-11-08').astype(np.int8)

在Python中,TrueFalse值在内部表示为1和{}。

但是@lithibicus的解决方案更通用,因为你可以在那里输入任何值,而不仅仅是0或1。

可以使用numpy.where语句执行类似操作:

df['column_i'] = np.where(df['column_j'] == '1983-11-08', 0, 1)

相关问题 更多 >