python - 根据 pandas 数据框中特定列中的值提取列值

标签 python pandas numpy

我有一个数据框,其中 dx1-dx99 为 99 列,px1-px99 为 99 列,一列为 mort:

dx1 dx2 dx3 .   dx99    px1 px2 .   px99    mort
E10 I12 E10 N18 R18     0FY 0TY 0DN 0DN      1
E10 I12 I31 E44 N17     0FY 0TY 0FT 5A1      0
E10 I12 N17 T86 T86     0TY 0FY 0DT          0
I12 E10 N18 A04         0TY 0FY 0DT 0T7      1
E10 I12 E10 N18 Z99     0TY 0FY              0
E10 N18 Z76             0FY 0TY 04Q 0D1      1
E10 N18 Z99 N25 E78     0TY 0FY 0WP          0

我想保留 dx-dx99 和 px-px99 中的所有值,其中匹配行中 mort=1 的值,否则将它们设置为零。之后计算剩余代码的出现频率。

我尝试过这个:

dx = df.loc[:,'dx1':'dx99']
X1pr = df.loc[:,'px1':'px99']
dx = dx.fillna(0)    
X1p = X1pr.fillna(0)
death = df.loc[:,'mort']
df1 = pd.concat([dx, X1p, death], axis=1)

N = len(df1.columns)
keep = df1.iloc[:,-(N-1):].isin(["1"]).values

df1.iloc[:,:N-1] = df1.iloc[:,:N-1].where(keep, 0)
X1d = df1.[df1.columns[0:N-1]]

mat = X1d.as_matrix(columns=None)
values, counts = np.unique(mat.astype(str), return_counts=True)
matrix = []
for v,c in zip(values, counts):
    matrix.append( [v,c])

icd9_counted_d = pd.DataFrame(matrix, columns = ['ICD_code', 'DEATHS'])

我在“死亡”列中没有得到任何信息。有什么想法吗?

最佳答案

IIUC:

In [31]: x.loc[x.mort != 1, x.columns != 'mort'] = ''

In [32]: x
Out[32]:
   dx1  dx2  dx3  dx4 dx99  px1  px2  px3 px99  mort
0  E10  I12  E10  N18  R18  0FY  0TY  0DN  0DN     1
1                                                  0
2                                                  0
3  I12  E10  N18  A04  NaN  0TY  0FY  0DT  0T7     1
4                                                  0
5  E10  N18  Z76  NaN  NaN  0FY  0TY  04Q  0D1     1
6                                                  0

关于python - 根据 pandas 数据框中特定列中的值提取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330124/

相关文章:

python - 对 Pandas 中 Python Lambda 函数的澄清/思考

python - numpy 设置多维数组,索引数组包含 NaN

Python numpy 类型小数位数

python - 如何减少 list-dict 键引用的处理时间

Python 请求返回 200 而不是 301

python - pandas.read_excel() 输出 'OverflowError: date value out of range',但不存在日期列

python - Pip 卡在 "collecting numpy"

Python TCP 套接字数据有时会丢失部分。套接字溢出?

python - 使用 pandas 使用现有数据框中的唯一元素生成随机数据框

python-2.7 - 将带有逗号的 Pandas 字符串列更改为 Float