Python 使用根据数据帧中的条件选择的Numpy数组中的值创建向量
我正在使用一个包含两列整数的数组。对于df的每个数据,我想选择这两个整数,将它们用作[row,column]对,从np.array中提取值,并使用提取的值创建一个新的np.array 更详细地说,my df包含以下条目:Python 使用根据数据帧中的条件选择的Numpy数组中的值创建向量,python,arrays,numpy,pandas,Python,Arrays,Numpy,Pandas,我正在使用一个包含两列整数的数组。对于df的每个数据,我想选择这两个整数,将它们用作[row,column]对,从np.array中提取值,并使用提取的值创建一个新的np.array 更详细地说,my df包含以下条目: State FutureState DATE 1947-10-01 0 0 1948-01-01
State FutureState
DATE
1947-10-01 0 0
1948-01-01 0 1
1948-04-01 1 1
1948-07-01 1 1
对于每个日期
,我想选择[State,FutureState]对,并从以下名为p
的np.array中提取相应的[row,column]项:
array([[ 0.7, 0.3],
[ 0.4, 0.6]])
使用这些值,我想创建一个名为Transition
的新np.array,它包含以下值之一:
[P[0,0],P[0,1],P[1,1],P[1,1]] = [0.7, 0.3, 0.6, 0.6]
用作数组p
索引的成对[0,0]、[0,1]、[1,1][1,1]
是每个日期(1947-10-01、1948-01-01、1948-04-01、1948-07-01)的[State、FutureState]
值
我已经试着用很多不同的方法来解决我的问题,但都没有用。有人能建议如何成功创建转换
向量吗 这个怎么样
df.apply(lambda x:P[x[0],x[1]], axis=1)
它按照您所描述的那样,沿df
行(因此应用于axis=1
),并使用条目作为索引,以便在p
中进行选择
p[df.State, df.FutureState]
以下是完整的代码:
import io
import pandas as pd
import numpy as np
txt = """ State FutureState
1947-10-01 0 0
1948-01-01 0 1
1948-04-01 1 1
1948-07-01 1 1"""
df = pd.read_csv(io.BytesIO(txt), delim_whitespace=True)
p = np.array([[ 0.7, 0.3], [ 0.4, 0.6]])
p[df.State, df.FutureState]
抱歉,您的问题有点不清楚,您能否提供更多信息,例如,您从哪里获得p[0,1]值,因为不清楚这是一个示例的哪个日期for@EdChum:谢谢你的评论,请原谅我的困惑。我在
[P[0,0],P[0,1],P[1,1],P[1,1]=[0.7,0.3,0.6,0.6]
行下面加了一行。这足以让我的问题更清楚吗?这是可行的,但我对numpy整形不太熟悉:P[df.values.reformate([4,2])[1]