小编Bee*_*Gee的帖子

R - 计算自多个事件类型的上一个事件以来经过的时间

我有一个数据框,其中包含多种类型事件的日期.

df <- data.frame(date=as.Date(c("06/07/2000","15/09/2000","15/10/2000"
                            ,"03/01/2001","17/03/2001","23/04/2001",
                            "26/05/2001","01/06/2001",
                            "30/06/2001","02/07/2001","15/07/2001"
                            ,"21/12/2001"), "%d/%m/%Y"), 
             event_type=c(0,4,1,2,4,1,0,2,3,3,4,3))

   date                event_type
   ----------------    ----------
1  2000-07-06          0
2  2000-09-15          4
3  2000-10-15          1
4  2001-01-03          2
5  2001-03-17          4
6  2001-04-23          1
7  2001-05-26          0
8  2001-06-01          2
9  2001-06-30          3
10 2001-07-02          3
11 2001-07-15          4
12 2001-12-21          3
Run Code Online (Sandbox Code Playgroud)

我试图计算每个事件类型之间的天数,所以输出如下所示:

   date                event_type          days_since_last_event
   ----------------    ----------          ---------------------
1  2000-07-06          0                    NA
2  2000-09-15          4                    NA
3  2000-10-15          1                    NA
4  2001-01-03          2                    NA
5  2001-03-17          4                   183
6  2001-04-23          1 …
Run Code Online (Sandbox Code Playgroud)

time r

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

Seaborn BarPlot反转y轴并将x轴保持在图表区域的底部

在Excel中,我可以采用如下所示的图形: 在此处输入图片说明

并使其如下所示:

在此处输入图片说明

通过反转Y轴并将“水平轴交叉”设置为“最大”。

我想在Seaborn中做同样的事情。我可以使用翻转y_axis,.invert_yaxis()但无法像在Excel中那样将条形图保持在图表底部。

import seaborn as sns
barplot = sns.barplot(x='abc'
                      ,y='def'
                      ,data=df
                      ,ci=None
                      )
barplot.invert_yaxis()
barplot.figure
Run Code Online (Sandbox Code Playgroud)

产生这样的东西: 在此处输入图片说明

如何将条形图从顶部开始移动到底部?

我正在使用Python 3.6和seaborn 0.7.1

我的问题似乎与此类似,但这个问题尚不清楚,没有答案: Pyplot-反转Y标签而不反转条形图

python matplotlib python-3.x seaborn

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

将NetworkX节点属性设置为Pandas Dataframe列

我在下面创建了一个Networkx graph调用G

import networkx as nx
G = nx.Graph()
G.add_node(1,job= 'teacher', boss = 'dee')
G.add_node(2,job= 'teacher', boss = 'foo')
G.add_node(3,job= 'admin', boss = 'dee')
G.add_node(4,job= 'admin', boss = 'lopez')
Run Code Online (Sandbox Code Playgroud)

我想存储的node号码沿attributesjobboss在一个单独的列pandas dataframe

我试图用下面的代码来做到这一点,但它会产生一个dataframe包含2列的列,其中1个包含node数字,另一个包含所有attributes

graph = G.nodes(data = True)
import pandas as pd
df = pd.DataFrame(graph)

df
Out[19]: 
    0                                      1
0  1  {u'job': u'teacher', u'boss': u'dee'}
1  2  {u'job': u'teacher', u'boss': u'foo'} …
Run Code Online (Sandbox Code Playgroud)

python networkx dataframe python-2.7 pandas

4
推荐指数
3
解决办法
2139
查看次数

将值随机分配给熊猫数据框中的行子集

我在 Anaconda 中使用 Python 2.7.11。

我了解如何设置行子集的值,Pandas DataFrame例如修改熊猫数据帧中的行子集,但我需要随机设置这些值。

假设我有df下面的数据框。如何随机设置 的值,group == 2使它们不都等于 1.0?

import pandas as pd
import numpy as np

df = pd.DataFrame([1,1,1,2,2,2], columns = ['group'])
df['value'] = np.nan
df.loc[df['group'] == 2, 'value'] = np.random.randint(0,5)

print df
   group  value
0      1    NaN
1      1    NaN
2      1    NaN
3      2    1.0
4      2    1.0
5      2    1.0
Run Code Online (Sandbox Code Playgroud)

df 应该如下所示:

print df
   group  value
0      1    NaN
1      1    NaN
2      1    NaN …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在分类列中有条件地创建“其他”类别

我有DataFrame df一列,category用下面的代码创建:

import pandas as pd
import random as rand
from string import ascii_uppercase

rand.seed(1010)

df = pd.DataFrame()
values = list()
for i in range(0,1000):   
    category = (''.join(rand.choice(ascii_uppercase) for i in range(1)))
    values.append(category)

df['category'] = values
Run Code Online (Sandbox Code Playgroud)

每个值的频率计数是:

df['category'].value_counts()
Out[95]: 
P    54
B    50
T    48
V    46
I    46
R    45
F    43
K    43
U    41
C    40
W    39
E    39
J    39
X    37
M    37
Q    35
Y    35
Z    34
O …
Run Code Online (Sandbox Code Playgroud)

python dataframe python-2.7 pandas categorical-data

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

Pyodbc 错误 - Python 到 MS Access

我在 Windows 7、Python 2.7 和 Microsoft Access 2013 上运行。

当我尝试运行时:

import pyodbc
conn_string = '''
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
UID=admin;
UserCommitSync=Yes;
Threads=3;
SafeTransactions=0;
PageTimeout=5;
MaxScanRows=8;
MaxBufferSize=2048;
FIL=MS Access;
DriverId=25;
DefaultDir=C:\Users\jseinfeld;
DBQ=C:\Users\jseinfeld\Desktop\Databasetest1.accdb;
'''
connection = pyodbc.connect(conn_string)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48    

Jet'. (63) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for …
Run Code Online (Sandbox Code Playgroud)

python ms-access odbc pyodbc

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

Pandas:删除以任何顺序存在的重复项

我的问题类似于Pandas: remove reverse duplicates from dataframe但我有一个额外的要求。我需要维护行值对。

例如:

我有datawhere columnA对应 columnC和 columnB对应 column D

import pandas as pd

# Initial data frame
data = pd.DataFrame({'A': [0, 10, 11, 21, 22, 35, 5, 50], 
                     'B': [50, 22, 35, 5, 10, 11, 21, 0],
                     'C': ["a", "b", "r", "x", "c", "w", "z", "y"],
                     'D': ["y", "c", "w", "z", "b", "r", "x", "a"]})
data

#    A   B  C  D
#0   0  50  a …
Run Code Online (Sandbox Code Playgroud)

python pandas

3
推荐指数
1
解决办法
1050
查看次数

获取包含负值的列的列名列表

这是一个简单的问题,但我已经找到了"切片" DataFramesPandas折腾,来自哪里R.

我在DataFrame df下面有7列:

df
Out[77]: 
     fld1  fld2  fld3  fld4  fld5  fld6  fld7
0     8     8    -1     2     1     7     4
1     6     6     1     7     5    -1     3
2     2     5     4     2     2     8     1
3    -1    -1     7     2     3     2     0
4     6     6     4     2     0     5     2
5    -1     5     7     1     5     8     2
6     7     1    -1     0     1     8     1
7     6     2     4 …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas

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

从字典中的值列表中删除值

我在Windows 7中使用Python 2.7.

我有一个字典,并希望从另一个字典中删除与(键,值)对相对应的值.

例如,我有一本字典t_dict.我想删除字典中的相应(键,值)对,values_to_remove以便我最终得到字典final_dict

t_dict = {
    'a': ['zoo', 'foo', 'bar'],
    'c': ['zoo', 'foo', 'yum'],
    'b': ['tee', 'dol', 'bar']
}

values_to_remove = {
    'a': ['zoo'],
    'b': ['dol', 'bar']
}

# remove values here

print final_dict
{
    'a': ['foo', 'bar'],
    'c': ['zoo', 'foo', 'yum'],
    'b': ['tee']
}
Run Code Online (Sandbox Code Playgroud)

我已经查看了关于SO和python词典文档的类似页面,但找不到任何解决这个特定问题的东西:

https://docs.python.org/2/library/stdtypes.html#dict

如何从嵌套字典中删除具有重复值的字典

如何从python字典中删除一个键?

编辑

t_dict每个键中不能有重复的值.例如,永远不会有

t_dict['a'] = ['zoo','zoo','foo','bar']

python dictionary python-2.7

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