首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有数组值的Datafame np.select的Python

具有数组值的Datafame np.select的Python
EN

Stack Overflow用户
提问于 2020-07-09 06:04:13
回答 2查看 81关注 0票数 0

我试图根据不同列的多个条件生成一个新列。我的代码运行时没有跟踪错误。下面是数据和代码的片段。

代码语言:javascript
复制
import pandas as pd
import numpy as np

dfc = pd.read_csv(r'C:\\Users\\...01.csv', header='infer')

condition = [dfc['N']==0, dfc['count']==dfc['N'], (dfc['count'] > dfc['N']) & (dfc['N'] != 0)]
rng_result = [str(dfc['i']) + '-' + str(dfc['a']),'None','None to Many'] 
dfc['rng'] = np.select(condition, rng_result, np.nan)

dfc.to_csv(r'C:\\Users\\...R_01.csv', index=False)

这可能是因为我不太理解numpy,中间的和最后的条件都很好。第一个条件提供一个不需要的数组。当我在下面输入时,我想要一个包含行'i‘和'a’值的字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-09 07:19:11

从这个问题中,情况并不是显而易见的,但这个问题是否旨在解决以下问题?在“True”的情况下,我使用np.where()组合字符串。

代码语言:javascript
复制
import pandas as pd
import numpy as np
import io

data = '''
count,i,a,N
1,1.4,1.4,0
1,0,0,1
2,110,140,0
3,0,0,3
4,3.5,5.1,0
4,19,22,0
'''

df = pd.read_csv(io.StringIO(data), sep=',')
df['rng'] = np.where((df['N'] == 1)|(df['N'] == 3), None, df['i'].astype(str)+'-'+df['a'].astype(str))
df
count   i     a       N rng
0   1   1.4   1.4     0 1.4-1.4
1   1   0.0   0.0     1 None
2   2   110.0   140.0   0   110.0-140.0
3   3   0.0   0.0     3 None
4   4   3.5   5.1     0 3.5-5.1
5   4   19.0    22.0    0   19.0-22.0
票数 2
EN

Stack Overflow用户

发布于 2020-07-09 07:21:38

使用apply,我发现它更易读和可维护。

代码语言:javascript
复制
data = [["count","i","a","N"],
       [1,1.4,1.4,0],
       [1,0,0,1],
       [2,110,140,0],
       [3,0,0,3],
        [4,3.5,5.1,0],
        [4,19,22,0],
        [50,0,17,21],
        [25,0,0,25]]

def cond(r):
    val = "tbd"
    if r.N==0: val = str(r.i)+"-"+str(r.a) 
    if r["count"]==r.N: val = "None"
    if (r['count'] > r['N']) and (r['N'] != 0): val = 'None to Many'
    return val

df = pd.DataFrame(data[1:], columns=data[0])
df["rng"] = df.apply(lambda r: cond(r), axis=1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62808441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档