小编jpp*_*jpp的帖子

有没有一种简单的方法可以在Pandas数据帧中将yes/no列更改为1/0?

我将csv文件读入pandas数据帧,并希望将带有二进制答案的列从yes/no字符串转换为1/0的整数.下面,我展示了一个这样的列("sampleDF"是pandas数据帧).

In [13]: sampleDF.housing[0:10]
Out[13]:
0     no
1     no
2    yes
3     no
4     no
5     no
6     no
7     no
8    yes
9    yes
Name: housing, dtype: object
Run Code Online (Sandbox Code Playgroud)

非常感谢帮助!

python series dataframe pandas

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

Pandas pd.Series.isin性能与集合与数组

在Python中,一般来说,可散列集合的成员资格最好通过测试set.我们知道这一点,因为哈希的使用为我们提供了O(1)查找复杂度,而O(n)为listnp.ndarray.

在Pandas中,我经常需要检查非常大的集合中的成员资格.我推测同样适用,即检查一个系列中的每个项目的成员资格set比使用list或更有效np.ndarray.但是,情况似乎并非如此:

import numpy as np
import pandas as pd

np.random.seed(0)

x_set = {i for i in range(100000)}
x_arr = np.array(list(x_set))
x_list = list(x_set)

arr = np.random.randint(0, 20000, 10000)
ser = pd.Series(arr)
lst = arr.tolist()

%timeit ser.isin(x_set)                   # 8.9 ms
%timeit ser.isin(x_arr)                   # 2.17 ms
%timeit ser.isin(x_list)                  # 7.79 ms
%timeit np.in1d(arr, x_arr)               # 5.02 ms
%timeit [i in x_set for i in lst]         # 1.1 ms
%timeit …
Run Code Online (Sandbox Code Playgroud)

python performance numpy series pandas

24
推荐指数
1
解决办法
1957
查看次数

在python中编写函数

我有一个函数数组,我正在尝试生成一个函数,该函数由我的数组中的元素组成.我的方法是:

def compose(list):
    if len(list) == 1:
        return lambda x:list[0](x)
    list.reverse()
    final=lambda x:x
    for f in list:
        final=lambda x:f(final(x))
    return final
Run Code Online (Sandbox Code Playgroud)

这种方法似乎不起作用,将不胜感激.

(我正在颠倒列表,因为这是我想要函数的组合顺序)

python functional-programming composition function-composition

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

用冒号解析时区

有没有办法用strptime解析"+00:00"格式的时区?例如:

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> datetime.strptime("12:34:56+0000", "%X%z")
datetime.datetime(1900, 1, 1, 12, 34, 56, tzinfo=datetime.timezone.utc)
>>> datetime.strptime("12:34:56+00:00", "%X%z")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python34\lib\_strptime.py", line 500, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "C:\Python34\lib\_strptime.py", line 337, in _strptime
    (data_string, format))
ValueError: time data '12:34:56+00:00' does not match …
Run Code Online (Sandbox Code Playgroud)

python string datetime strptime

23
推荐指数
3
解决办法
6409
查看次数

使用Groupby的Python Pandas条件求和

使用样本数据:

df = pd.DataFrame({'key1' : ['a','a','b','b','a'],
               'key2' : ['one', 'two', 'one', 'two', 'one'],
               'data1' : np.random.randn(5),
               'data2' : np. random.randn(5)})
Run Code Online (Sandbox Code Playgroud)

DF

    data1        data2     key1  key2
0    0.361601    0.375297    a   one
1    0.069889    0.809772    a   two
2    1.468194    0.272929    b   one
3   -1.138458    0.865060    b   two
4   -0.268210    1.250340    a   one
Run Code Online (Sandbox Code Playgroud)

我试图找出如何按key1对数据进行分组,并仅将key2等于'one'的data1值相加.

这是我尝试过的

def f(d,a,b):
    d.ix[d[a] == b, 'data1'].sum()

df.groupby(['key1']).apply(f, a = 'key2', b = 'one').reset_index()
Run Code Online (Sandbox Code Playgroud)

但这给了我一个"无"值的数据框

index   key1    0
0       a       None
1       b       None
Run Code Online (Sandbox Code Playgroud)

这里有什么想法?我正在寻找与以下SQL相当的Pandas:

SELECT Key1, SUM(CASE WHEN …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

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

将列名分配给pandas系列

我有一个熊猫系列

object x
Ezh2   2
Hmgb   7
Irf1   1
Run Code Online (Sandbox Code Playgroud)

我想将此保存为一个数据框,其中包含列名Gene和Count,我试过了

x_df = pd.DataFrame(x,columns = ['Gene','count'])
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我想要的最终形式是

Gene Count
Ezh2   2
Hmgb   7
Irf1   1
Run Code Online (Sandbox Code Playgroud)

你能建议怎么做吗?

python series dataframe pandas

21
推荐指数
3
解决办法
6万
查看次数

如何在代码块中调试?

我正在使用代码块编程,我设置了一些断点,但是当我运行程序时,代码块似乎忽略了它们.

通过"启动程序"我的意思是简单地点击 build_and_run (建立并运行).

我查了下Debug,发现F8没有(开始/继续):

Debug_Menu

程序编译并运行正常,它只是忽略了断点.谁知道怎么解决这个问题?

ps我在这里查了一下,我认为建议的答案与我无关,因为Compiler settings我只有" C:\ MinGW " Compiler's installation directory.

编辑:

我正在使用Windows 8 64位,代码块12.11

debugging codeblocks

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

将列表列表转换为Python中的词典字典

我正在尝试将列表数据结构转换为字典字典.

该清单定义如下:

l = [
  ['PP','Ear-rings', 'Holesovice', 2000],
  ['PP','Skirts', 'Holesovice', 1000],
  ['PP','Dresses', 'E-shop', 1500],
  ['BM','Butterfly', 'Holesovice', 1600]
]
Run Code Online (Sandbox Code Playgroud)

我的目标是使字典结构如下:

#{'PP' : {'Holesovice' : {'Ear-rings' : 2000, 'Skirts' : 1000},
#         'E-shop' : {'Dresses' : 1500}},
# 'BM' : {'Holesovice' : {'Butterfly' : 1600}}
#}
Run Code Online (Sandbox Code Playgroud)

这段代码不会返回所需的输出:

labels_d = {}
items_d = {}
shops_d = {}

for index, row in enumerate(l):
  items_d[row[1]] = row[3]
  shops_d[row[2]] = items_d
  labels_d[row[0]] = shops_d

print(labels_d)
Run Code Online (Sandbox Code Playgroud)

我在这里这里找到了一些处理将列表转换为字典的帖子,但我并没有按照我想要的方式使它工作.有没有"干净"的方式如何实现上面公布的结构?

python dictionary nested list python-3.x

20
推荐指数
3
解决办法
3418
查看次数

将元组列表拆分为同一元组字段的子列表

我有这种格式的巨大元组列表.每个元组的第二个字段是类别字段.

    [(1, 'A', 'foo'),
    (2, 'A', 'bar'),
    (100, 'A', 'foo-bar'),

    ('xx', 'B', 'foobar'),
    ('yy', 'B', 'foo'),

    (1000, 'C', 'py'),
    (200, 'C', 'foo'),
    ..]
Run Code Online (Sandbox Code Playgroud)

将其分解为同一类别(A,B,C等)的子列表的最有效方法是什么?

python sorting grouping list

19
推荐指数
1
解决办法
8924
查看次数

pandas系列的.ix索引有什么意义

对于Series对象(让我们称之为s),pandas提供了三种类型的寻址.

s.iloc [] - 用于整数位置寻址;

s.loc [] - 用于索引标签寻址; 和

s.ix [] - 用于整数位置和标签寻址的混合.

pandas对象还直接执行ix寻址.

# play data ...
import string
idx = [i for i in string.uppercase] # A, B, C .. Z
t = pd.Series(range(26), index=idx) # 0, 1, 2 .. 25

# examples ...
t[0]              # --> 0
t['A']            # --> 0
t[['A','M']]      # --> [0, 12]
t['A':'D']        # --> [0, 1, 2, 3]
t.iloc[25]        # --> 25
t.loc['Z']        # --> 25
t.loc[['A','Z']]  # --> [0, 25] …
Run Code Online (Sandbox Code Playgroud)

python pandas

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