小编dmv*_*nna的帖子

对于每一行,返回最大值的列名

我有一个员工名单,我需要知道他们最常在哪个部门.将员工ID与部门名称制表是微不足道的,但从频率表中返回部门名称而不是名册数量是很棘手的.下面是一个简单示例(列名=部门,行名=员工ID).

DF <- matrix(sample(1:9,9),ncol=3,nrow=3)
DF <- as.data.frame.matrix(DF)
> DF
  V1 V2 V3
1  2  7  9
2  8  3  6
3  1  5  4
Run Code Online (Sandbox Code Playgroud)

现在我该怎么办?

> DF2
  RE
1 V3
2 V1
3 V2
Run Code Online (Sandbox Code Playgroud)

r

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

按组选择第一行

来自这样的数据框架

test <- data.frame('id'= rep(1:5,2), 'string'= LETTERS[1:10])
test <- test[order(test$id), ]
rownames(test) <- 1:10

> test
    id string
 1   1      A
 2   1      F
 3   2      B
 4   2      G
 5   3      C
 6   3      H
 7   4      D
 8   4      I
 9   5      E
 10  5      J
Run Code Online (Sandbox Code Playgroud)

我想用每个id/string对的第一行创建一个新的.如果sqldf在其中接受R代码,则查询可能如下所示:

res <- sqldf("select id, min(rownames(test)), string 
              from test 
              group by id, string")

> res
    id string
 1   1      A
 3   2      B
 5   3      C
 7   4      D
 9   5      E …
Run Code Online (Sandbox Code Playgroud)

r dataframe sqldf

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

如何用R或Python制作一个旭日形图?

到目前为止,我一直无法找到一个可以创建像John Stasko那样的旭日阴谋的R库.任何人都知道如何在R或Python中实现这一目标?

旭日

python r data-visualization ggplot2 sunburst-diagram

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

ggplot2中更简单的人口金字塔

我想用ggplot2创建一个人口金字塔.之前曾问这个问题,但我相信解决方案必须简单得多.

test <- (data.frame(v=rnorm(1000), g=c('M','F')))
require(ggplot2)
ggplot(data=test, aes(x=v)) + 
    geom_histogram() + 
    coord_flip() + 
    facet_grid(. ~ g)
Run Code Online (Sandbox Code Playgroud)

生成此图像.在我看来,这里创建人口金字塔的唯一步骤是反转第一个方面的x轴,使其从50变为0,同时保持第二个不变.有人可以帮忙吗?

人口金字塔

r ggplot2

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

从pyodbc execute()语句返回列名

from pandas import DataFrame
import pyodbc

cnxn = pyodbc.connect(databasez)
cursor.execute("""SELECT ID, NAME AS Nickname, ADDRESS AS Residence FROM tablez""")
DF = DataFrame(cursor.fetchall())
Run Code Online (Sandbox Code Playgroud)

这可以填充我的pandas DataFrame.但我怎么得到

DF.columns = ['ID', 'Nickname', 'Residence']
Run Code Online (Sandbox Code Playgroud)

直接从光标?该信息是否完全存储在光标中?

python pyodbc pandas

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

重置列的MultiIndex级别

是否有一种更短的方法来删除列MultiIndex级别(在我的情况下basic_amt),除了转换它两次?

In [704]: test
Out[704]: 
           basic_amt               
Faculty          NSW  QLD  VIC  All
All                1    1    2    4
Full Time          0    1    0    1
Part Time          1    0    2    3

In [705]: test.reset_index(level=0, drop=True)
Out[705]: 
         basic_amt               
Faculty        NSW  QLD  VIC  All
0                1    1    2    4
1                0    1    0    1
2                1    0    2    3

In [711]: test.transpose().reset_index(level=0, drop=True).transpose()
Out[711]: 
Faculty    NSW  QLD  VIC  All
All          1    1    2    4
Full Time    0    1    0    1
Part Time    1 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

函数名+标签不返回IPython中的docstring

在IPython中,我习惯写

功能(

然后敲击一个选项卡,获取docstring的内容和命名参数的列表.但是,自从我安装了IPython 2.0以来,这就停止了.有解释或知道修复吗?

docstring tab-completion ipython ipython-notebook jupyter-notebook

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

创建一个空的MultiIndex

我想在为其分配行之前使用MultiIndex创建一个空的 DataFrame.我已经发现空DataFrames不喜欢动态分配MultiIndexes,所以我在创建过程中设置MultiIndex 名称.但是,我不想分配级别,因为这将在以后完成.这是我到目前为止最好的代码:

def empty_multiindex(names):
    """
    Creates empty MultiIndex from a list of level names.
    """
    return MultiIndex.from_tuples(tuples=[(None,) * len(names)], names=names)
Run Code Online (Sandbox Code Playgroud)

哪能给我

In [2]:

empty_multiindex(['one','two', 'three'])

Out[2]:

MultiIndex(levels=[[], [], []],
           labels=[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]],
           names=[u'one', u'two', u'three'])
Run Code Online (Sandbox Code Playgroud)

In [3]:
DataFrame(index=empty_multiindex(['one','two', 'three']))

Out[3]:
one two three
NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)

好吧,我对这些NaN毫无用处.我可以在以后轻松放弃它们,但这显然是一个hackish解决方案.谁有更好的?

python multi-index pandas

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

获取整数部分的数字

所以我有一个数字小数表,比方说

id    value
2323   2.43
4954  63.98
Run Code Online (Sandbox Code Playgroud)

我想得到

id    value
2323      2
4954     63
Run Code Online (Sandbox Code Playgroud)

在T-SQL中有一个简单的功能吗?

t-sql

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

如何遍历两个pandas列

In [35]: test = pd.DataFrame({'a':range(4),'b':range(4,8)})

In [36]: test
Out[36]: 
   a  b
0  0  4
1  1  5
2  2  6
3  3  7

In [37]: for i in test['a']:
   ....:  print i
   ....: 
0
1
2
3

In [38]: for i,j in test:
   ....:  print i,j
   ....: 
------------------------------------------------------------
Traceback (most recent call last):
  File "<ipython console>", line 1, in <module>
ValueError: need more than 1 value to unpack


In [39]: for i,j in test[['a','b']]:
   ....:  print i,j
   ....: 
------------------------------------------------------------
Traceback …
Run Code Online (Sandbox Code Playgroud)

python pandas

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