小编use*_*169的帖子

如何聚合pandas groupby中的多个列

我使用以下输入创建了一个pandas dataframe mn:

keyA     state n1    n2     d1  d2
key1     CA   100   1000    1   2
key2     FL   200   2000    2   4
key1     CA   300   3000    3   6
key1     AL   400   4000    4   8
key2     FL   500   5000    5   2
key1     NY   600   6000    6   4
key2     CA   700   7000    7   6
Run Code Online (Sandbox Code Playgroud)

创建了一个sum对象,如下所示:

s = mn.groupby(['keyA','state'], as_index=False).sum()
Run Code Online (Sandbox Code Playgroud)

如何迭代sum对象s,以便我可以得到以下输出:

以下结果中的v1列计算为 s['n1']/s['d1']

以下结果中的v2列计算为 s['n2']/s['d2']

keyA state  v1  v2
'key1','AL',100,500
'key1','CA',100,500
'key1','NY',100,1500
'key2','CA',100,1166
'key2','FL',100,1166
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
1
解决办法
1万
查看次数

如何在熊猫中传递多个参数来映射函数

我有一个以下dataFrame

mn = pd.DataFrame({'fld1': [2.23, 4.45, 7.87, 9.02, 8.85, 3.32, 5.55],'fld2': [125000, 350000,700000, 800000, 200000, 600000, 500000],'lType': ['typ1','typ2','typ3','typ1','typ3','typ1','typ2'], 'counter': [100,200,300,400,500,600,700]})
Run Code Online (Sandbox Code Playgroud)

映射功能

def getTag(rangeAttribute):
    sliceDef = {'tag1': [1, 4], 'tag2': [4, 6], 'tag3': [6, 9],
                'tag4': [9, 99]}
    for sl in sliceDef.keys():
        bounds = sliceDef[sl]
        if ((float(rangeAttribute) >= float(bounds[0]))
            and (float(rangeAttribute) <= float(bounds[1]))):
            return sl


def getTag1(rangeAttribute):
    sliceDef = {'100-150': [100000, 150000],
                '150-650': [150000, 650000],
                '650-5M': [650000, 5000000]}
    for sl in sliceDef.keys():
        bounds = sliceDef[sl]
        if ((float(rangeAttribute) >= float(bounds[0]))
            and (float(rangeAttribute) …
Run Code Online (Sandbox Code Playgroud)

python map pandas

4
推荐指数
1
解决办法
1613
查看次数

redshift中的日志函数

我正在尝试运行以下查询。

CREATE TEMP TABLE tmp_variables AS SELECT 
   0.99::numeric(10,8) AS y ;

select y, log(y) from tmp_variables
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误。有办法解决这个问题吗?

CREATE TEMP TABLE tmp_variables AS SELECT 
   0.99::numeric(10,8) AS y ;

select y, log(y) from tmp_variables
Run Code Online (Sandbox Code Playgroud)

sql amazon-redshift

2
推荐指数
1
解决办法
1392
查看次数

将bash脚本转换为python而不使用子进程

如何在不使用subprocess命令的情况下将以下内容转换为python

cat  $MYDIR/*  |grep ABCD |grep zip |grep -v idx |awk -F'/' '{print $3}'  |awk -F"_" '{print $2}'  |awk -F"." '{print $1}'  |sed 's/\$[A-Z]//g' |   sort|uniq  |egrep -v "^ABCD_G9" |egrep -v ABCD_00 |egrep -v "^ABCD_0[1-8]"  > $DATADIR/ABCDDataFile
Run Code Online (Sandbox Code Playgroud)

python bash awk subprocess sed

-2
推荐指数
1
解决办法
91
查看次数

标签 统计

python ×3

pandas ×2

amazon-redshift ×1

awk ×1

bash ×1

map ×1

sed ×1

sql ×1

subprocess ×1