这是一个更大的 Dataframe 的模拟 Dataframe 。我有这个:
| 识别号|类别|装运T/F?|保持T/F?|
| - ------|- ------|- ------|- ------|
| 一百二十三|美国广播公司|假|假|
| 四百五十六|美国广播公司|假|真的|
| 七八九|美国广播公司|真的|假|
| 二百三十四|美国广播公司|真的|真的|
| 五六七|DEF|假|假|
| 六百七十八|DEF|假|假|
| 一百三十五|DEF|假|假|
| 二四六|DEF|假|假|
| 三六九|克热|真的|真的|
我想要这个:
| 识别号|类别|装运T/F?|保持T/F?|新山口|
| - ------|- ------|- ------|- ------|- ------|
| 一百二十三|美国广播公司|假|假|1个|
| 四百五十六|美国广播公司|假|真的|1个|
| 七八九|美国广播公司|真的|假|1个|
| 二百三十四|美国广播公司|真的|真的|无|
| 五六七|DEF|假|假|无|
| 六百七十八|DEF|假|假|无|
| 一百三十五|DEF|假|假|无|
| 二四六|DEF|假|假|无|
| 三六九|克热|真的|真的|无|
我的代码:
import pandas as pd
import numpy as np
data=[
['123','ABC', False, False],
['456','ABC', False, True],
['789','ABC', True, False],
['234','ABC', True, True],
['567','DEF', False, False],
['678','DEF', False, True],
['135','DEF', True, False],
['246','DEF', True, True],
['369','KGH', True, True]
]
df = pd.DataFrame(data,columns=['ID','Category','Shipped T/F?','Hold T/F?'])
Conditions = [
(df['Category'] != 'ABC'),
(df['Shipped T/F?'].bool==True and df['Hold T/F?'].bool==True)
(df['Category'] == 'ABC')
]
values=[0,0,1]
df['NewCol'] = np.select(Conditions,values)
print(df)
这是我得到的错误:发生异常:类型错误"bool"对象不可调用文件"C:\Users\Johnr50\Documents\repos\SLHRoutine\testTFLkup.py",第19行,在(df ["是否已装运T/F?"]. bool == True和df ["是否保留T/F?"]. bool == True)类型错误:"bool"对象不可调用
我尝试了以下解决方案:https://www.learndatasci.com/solutions/python-valueerror-truth-value-series-ambiguous-use-empty-bool-item-any-or-all/https://www.dataquest.io/blog/tutorial-add-column-pandas-dataframe-based-on-if-else-condition/和其他几个形式的堆栈溢出,我不能再找到,因为我张贴这个问题。Update a df column based on three other columns values using a functionCreate New True/False Pandas Dataframe Column based on conditions
1条答案
按热度按时间t40tm48m1#
修改
Conditions
:输出: