布尔根据条件从列集中选择列

时间:2017-10-29 14:44:24

标签: python pandas numpy

所以我有以下几种情况:

import pandas as pd
import numpy as np

df_data = {'CODE' : ['111', '222', '333', '444'],
           'A' : ['2017/01/01', '2017/01/02', '', ''],
           'B' : ['', '2017/01/02', '', '2017/01/30'],
           'C' : ['', '2017/01/12', '', '2017/02/02'],
           'PRICE_A' : [10, 10, np.nan, np.nan],
           'PRICE_B': [np.nan, 8, np.nan, 9],
           'PRICE_C': [np.nan, 19, np.nan, 16]}

df = pd.DataFrame(df_data)
df.A = pd.to_datetime(df.A)
df.B = pd.to_datetime(df.B)
df.C = pd.to_datetime(df.C)
df

df

每列都会告诉我“代码”项目已达到的状态,当然,当日期填充插槽时会达到状态。每个状态对应一个价格值,打印在PRICE_A,PRICE_B,PRICE_C对应列中。

我想要做的是添加一个新列,列出每行当前达到的状态价格:

result_df

这很容易将我的列开箱即用并编写迭代数组的函数,但我确信有更好的方法可以通过Pandas实现这一点。

我想知道是否有人可以提出更明智的答案来解决这个问题。

0 个答案:

没有答案