【问题标题】:Create a new dataframe using the values of a categorical variable in a dataframe?使用数据框中的分类变量的值创建一个新的数据框?
【发布时间】:2021-02-25 10:34:07
【问题描述】:

尝试检索成本,如果 s['O_Status'] 值已关闭,请使用以下代码。

得到这个错误,ValueError:一个系列的真值是不明确的。 使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

.

 FClose = [i for i in s['Cost'] if s['O_Status'] == 'Closed']

    Cost      Year      O_Status ----> data frame column name
-------------------------------
6100000   2001      Closed
100004    2009      Operating
2004000   2015      Closed
144007    1999      Operating

也可以将分类变量值关闭并操作到以下格式的新数据帧中并存储相对成本值,

Closed     Operating ------> data frame column name
--------------------------    
6100000    100004    
2004000    144007      

【问题讨论】:

  • s['O_Status'] == 'Closed' 是一系列真/假值。错误告诉你这是模棱两可的,因为if pd.Series([True, False, True, False]) 是什么意思?它期待if Trueif False 而不是if complex object,这没有意义

标签: pandas dataframe


【解决方案1】:
import io

df = pd.read_csv(io.StringIO('''Cost      Year      O_Status
6100000   2001      Closed
100004    2009      Operating
2004000   2015      Closed
144007    1999      Operating'''), sep='\s+', engine='python')

FClose = df[df['O_Status'] == 'Closed']['Cost'].tolist()
print(FClose)

FOp = df[df['O_Status'] == 'Operating']['Cost'].tolist()
print(FOp)

dfnew = pd.concat([pd.DataFrame(FClose, columns=['Closed']), pd.DataFrame(FOp, columns=['Operating'])], axis=1)

输出

    Closed  Operating
0   6100000 100004
1   2004000 144007

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多