使用数据框中的分类变量的值创建一个新的数据框?

时间:2021-02-24 16:25:37

标签: pandas dataframe

尝试检索成本,如果 s['O_Status'] 值为 Closed,则使用以下代码。

<块引用>

得到这个错误,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      

1 个答案:

答案 0 :(得分:0)

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