小编Hap*_*yPy的帖子

如何在pandas中的特定列索引处插入列?

我可以在pandas中的特定列索引处插入列吗?

import pandas as pd
df = pd.DataFrame({'l':['a','b','c','d'], 'v':[1,2,1,2]})
df['n'] = 0
Run Code Online (Sandbox Code Playgroud)

这将把列n作为最后一列df,但是有没有办法告诉df我们n在开头?

python indexing pandas

153
推荐指数
4
解决办法
19万
查看次数

将字典条目转换为变量 - python

是否有一种pythonic方法将字典值分配给其键,以便将字典条目转换为变量?我试过这个:

>>> d = {'a':1, 'b':2}
>>> for key,val in d.items():
        exec('exec(key)=val')

        exec(key)=val
                 ^ 
        SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

更新:也许我应该更具体:我确实知道键值对是正确的,因为它们之前被我定义为变量.然后我将这些变量存储在字典中(作为键值对),并希望在不同的函数中重用它们.我可以在新函数中重新定义它们,但因为我可能有一个包含大约20个条目的字典,我认为可能有一种更有效的方法.

python dictionary

32
推荐指数
6
解决办法
4万
查看次数

保留数据框中的行,对于某些列的值的所有组合,在另一列中包含相同的元素

df = pd.DataFrame({'a':['x','x','x','x','x','y','y','y','y','y'],'b':['z','z','z','w','w','z','z','w','w','w'],'c':['c1','c2','c3','c1','c3','c1','c3','c1','c2','c3'],'d':range(1,11)})

   a  b   c   d
0  x  z  c1   1
1  x  z  c2   2
2  x  z  c3   3
3  x  w  c1   4
4  x  w  c3   5
5  y  z  c1   6
6  y  z  c3   7
7  y  w  c1   8
8  y  w  c2   9
9  y  w  c3  10
Run Code Online (Sandbox Code Playgroud)

我怎么能只保留行,对于所有的组合ab,包含相同的值c?或者换句话说,如何与排除行c了仅在一些组合的现值ab

例如,只有c1andc3出现在aand b( [x,z] …

python combinations filter pandas

20
推荐指数
5
解决办法
808
查看次数

如何获取numpy.random.choice的索引? - 蟒蛇

是否可以修改numpy.random.choice函数以使其返回所选元素的索引?基本上,我想创建一个列表并随机选择元素而无需替换

import numpy as np
>>> a = [1,4,1,3,3,2,1,4]
>>> np.random.choice(a)
>>> 4
>>> a
>>> [1,4,1,3,3,2,1,4]
Run Code Online (Sandbox Code Playgroud)

a.remove(np.random.choice(a))将使用它遇到的值(a[1]在上面的示例中)删除列表的第一个元素,这可能不是所选元素(例如,a[7]).

python random numpy

16
推荐指数
3
解决办法
2万
查看次数

如何在pandas中连接两个具有不同列名的数据框? - 蟒蛇

df1 = pd.DataFrame({'a':[1,2,3],'x':[4,5,6],'y':[7,8,9]})
df2 = pd.DataFrame({'b':[10,11,12],'x':[13,14,15],'y':[16,17,18]})
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用来自的键合并两个数据帧df1.我想我应该用pd.merge它,但我怎么能告诉pandas将值放在bdf2a列中df1.这是我想要实现的输出:

    a   x   y
0   1   4   7
1   2   5   8
2   3   6   9
3   10  13  16
4   11  14  17
5   12  15  18
Run Code Online (Sandbox Code Playgroud)

python merge pandas

15
推荐指数
3
解决办法
2万
查看次数

如何在pandas中的crosstab/pivot_table中使用两个不同的函数?

使用pandas,是否可以计算包含从两个不同函数计算的值的单个交叉表(或数据透视表)?

import pandas as pd
import numpy as np

c1 = np.repeat(['a','b'], [50, 50], axis=0)
c2 = list('xy'*50)
c3 = np.repeat(['G1','G2'], [50, 50], axis=0)
np.random.shuffle(c3)
c4=np.repeat([1,2], [50,50],axis=0)
np.random.shuffle(c4)
val = np.random.rand(100)

df = pd.DataFrame({'c1':c1, 'c2':c2, 'c3':c3, 'c4':c4, 'val':val})

frequencyTable = pd.crosstab([df.c1,df.c2],[df.c3,df.c4])
meanVal = pd.crosstab([df.c1,df.c2],[df.c3,df.c4],values=df.val,aggfunc=np.mean)
Run Code Online (Sandbox Code Playgroud)

因此,两个表中的行和列都是相同的,但我真正喜欢的是具有频率和平均值的表:

c3           G1                       G2          
c4     1              2              1              2
c1 c2  freq val       freq val       freq val       freq val         
a  x   6    0.624931  5    0.582268  8    0.528231  6    0.362804
   y   7    0.493890  8    0.465741  3    0.613126 …
Run Code Online (Sandbox Code Playgroud)

python merge pivot-table crosstab pandas

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

使用pandas重命名数据框列中的元素

使用熊猫:

df = pd.DataFrame({'n':['d','a','b','c','c','a','d','b'], 'v':[1,2,1,2,2,1,1,1]})
Run Code Online (Sandbox Code Playgroud)

如何重命名元素df.n,以便a更改为x,bto y,cto wdto z,从而导致:

   n  v
0  z  1
1  x  2
2  y  1
3  w  2
  ...
Run Code Online (Sandbox Code Playgroud)

python rename dataframe pandas

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

如何将列名转换为pandas中的列值 - python

df=pd.DataFrame(index=['x','y'], data={'a':[1,2],'b':[3,4]})
Run Code Online (Sandbox Code Playgroud)

如何将列名转换为列的值?这是我想要的输出

   c1  c2
x  1   a
x  3   b
y  2   a
y  4   b
Run Code Online (Sandbox Code Playgroud)

python pandas

6
推荐指数
1
解决办法
2926
查看次数

boot()等效于python?

在python中是否有一个等效的boot和boot.ci?在R我会这样做

library(boot)
result <- boot(data,bootfun,10000)
boot.ci(result)
Run Code Online (Sandbox Code Playgroud)

python statistics-bootstrap

6
推荐指数
1
解决办法
838
查看次数

如何根据pandas中其他列的值计算新列 - python

假设我的数据框包含以下数据:

>>> df = pd.DataFrame({'a':['l1','l2','l1','l2','l1','l2'],
                       'b':['1','2','2','1','2','2']})
>>> df
    a       b
0  l1       1
1  l2       2
2  l1       2
3  l2       1
4  l1       2
5  l2       2
Run Code Online (Sandbox Code Playgroud)

l1应该对应,1l2应该对应2.我想创建一个新列' c',对于每一行,c = 1if a = l1b = 1(或a = l2b = 2).如果a = l1b = 2(或a = l2b = 1)然后c = 0.

生成的数据框应如下所示:

  a …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

5
推荐指数
2
解决办法
2万
查看次数