小编seq*_*ard的帖子

如何将标题行添加到pandas DataFrame中

我正在读一个csv文件pandas.这个csv文件由四列和一些行组成,但没有标题行,我想添加它.我一直在尝试以下方面:

Cov = pd.read_csv("path/to/file.txt", sep='\t')
Frame=pd.DataFrame([Cov], columns = ["Sequence", "Start", "End", "Coverage"])
Frame.to_csv("path/to/file.txt", sep='\t')
Run Code Online (Sandbox Code Playgroud)

但是当我应用代码时,我收到以下错误:

ValueError: Shape of passed values is (1, 1), indices imply (4, 1)
Run Code Online (Sandbox Code Playgroud)

这个错误究竟是什么意思?在python中添加标题行到我的csv文件/ pandas df会是一个干净的方法吗?

python csv header pandas

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

将多个列值合并到python pandas中的一列中

我有一个像这样的pandas数据框:

   Column1  Column2  Column3  Column4  Column5
 0    a        1        2        3        4
 1    a        3        4        5
 2    b        6        7        8
 3    c        7        7        
Run Code Online (Sandbox Code Playgroud)

我现在要做的是获取一个包含Column1和新columnA的新数据帧.此列A应包含第2列的所有值 - (到)n(其中n是从Column2到行尾的列数),如下所示:

  Column1  ColumnA
0   a      1,2,3,4
1   a      3,4,5
2   b      6,7,8
3   c      7,7
Run Code Online (Sandbox Code Playgroud)

我怎样才能最好地解决这个问题?任何意见将是有益的.提前致谢!

python row list dataframe pandas

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

合并两个不同长度的python pandas数据帧,但保留输出数据帧中的所有行

我有以下问题:我有两个不同长度的pandas数据框,包含一些具有共同值的行和列,一些是不同的,如下所示:

df1:                                 df2:

      Column1  Column2  Column3           ColumnA  ColumnB ColumnC
    0    a        x        x            0    c        y       y
    1    c        x        x            1    e        z       z
    2    e        x        x            2    a        s       s
    3    d        x        x            3    d        f       f
    4    h        x        x
    5    k        x        x            
Run Code Online (Sandbox Code Playgroud)

我现在要做的是合并两个数据帧,以便如果ColumnA和Column1具有相同的值,则df2中的行将附加到df1中的相应行,如下所示:

df1:
    Column1  Column2  Column3  ColumnB  ColumnC
  0    a        x        x        s        s
  1    c        x        x        y        y
  2    e        x        x        z        z
  3    d        x        x        f        f …
Run Code Online (Sandbox Code Playgroud)

python merge dataframe pandas

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

如何在red hat 7上安装python3-devel

我正在尝试在我的虚拟环境中安装一些东西,它使用anaconda python 3.6.我得到了the gcc failed with exit status 1,暗示缺少正确的python3-devel包,如错误所述:命令'gcc'在安装eventlet时失败,退出状态为1.

为了解决这个错误,我尝试在运行RHEL 7.3的服务器上安装python3-devel软件包.我做了yum install python3-devel,但得到了一个'package not found'错误.然后我找到https://serverfault.com/questions/710354/repository-for-python3-devel-on-centos-7,它提示EPEL存储库中的python34-devel包.我使用yum安装它,但在尝试在我的虚拟环境中安装某些东西时,我仍然会收到the gcc failed with exit status 1错误.

有人知道如何解决这个问题吗?所有的帮助都会很有用.

install virtualenv python-3.x rhel7

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

在python中的不同进程之间共享一个列表

我有以下问题.我编写了一个函数,它将列表作为输入,并为列表中的每个元素创建一个字典.然后我想将这个字典附加到一个新列表,所以我得到一个字典列表.我正在尝试为此生成多个进程.我的问题在于我希望不同的进程访问字典列表,因为它由其他进程更新,例如在达到一定长度后打印一些东西.我的例子是这样的:

import multiprocessing

list=['A', 'B', 'C', 'D', 'E', 'F']

def do_stuff(element):
    element_dict={}
    element_dict['name']=element
    new_list=[]
    new_list.append(element_dict)
    if len(new_list)>3:
        print 'list > 3'

###Main###
pool=multiprocessing.Pool(processes=6)
pool.map(do_stuff, list)
pool.close()
Run Code Online (Sandbox Code Playgroud)

现在我的问题是每个进程都创建了自己的进程new_list.有没有办法在进程之间共享列表,以便所有字典都附加到同一个列表中?或者是定义new_list函数外部的唯一方法?

python list multiprocessing

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

在HTML / CSS的一行中的特定点上显示尺寸调整后的按钮

我是HTML / CSS的新手,现在正在使用Django构建Web应用程序。

该应用程序从预先计算的数据库中提取数据。每个条目都有一定的长度,并包含几个子条目,每个条目的长度是父条目的整个长度的一部分。作为python字典,它看起来像这样:

{entry1: {'length': 10000, {child1}: {'start':1, 'end':1000 }, {child2}: {'start':2000, 'end':6000}, ...}
Run Code Online (Sandbox Code Playgroud)

每个孩子的身高在这里都是起点。

我想做的是将每个条目显示为HTML / CSS中的一行,并且每个子条目都显示为该行上的按钮。该行上每个按钮的大小应反映其长度(这是父条目长度的一部分,但每个子条目的长度都不同)。重要的是,每个子条目在父条目上都有特定的位置(例如:父条目的长度为10000,子条目1的长度为1-1000,子条目2的长度为2000至6000,依此类推)

我想要得到的结果是这样的: 在此处输入图片说明

我想这样显示几十个条目,最终甚至将图形连接从一个条目显示到下面显示的一个条目。(假设从条目1,位置1200到条目2,位置400划了一条线)。

我设法将按钮放在HTML / CSS中的一行上,但是我不知道如何适当地调整每个按钮或如何将它们放在父行的正确位置。

任何人都可以将我指向可以帮助我实现这一目标的代码,库,方法,教程或其他内容吗?

html css django visualization data-visualization

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

如何遍历数据帧的行并检查列行中的值是否为NaN

我有一个初学者的问题.我有一个迭代的数据帧,我想检查column2行中的NaN值是否存在,如果不是,则对该值执行操作NaN.我的DataFrame看起来像这样:

df:

  Column1  Column2
0    a        hey
1    b        NaN
2    c        up
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试的是:

for item, frame in df['Column2'].iteritems():
    if frame.notnull() == True:
        print 'frame'
Run Code Online (Sandbox Code Playgroud)

这背后的想法是我迭代第2列中的行和print框架中的每一行都有一个值(这是一个字符串).然而,我得到的是:

AttributeError                            Traceback (most recent call last)
<ipython-input-80-8b871a452417> in <module>()
      1 for item, frame in df['Column2'].iteritems():
----> 2     if frame.notnull() == True:
      3         print 'frame'

AttributeError: 'float' object has no attribute 'notnull'
Run Code Online (Sandbox Code Playgroud)

当我只运行我的代码的第一行时,我得到了

0
hey
1
nan
2
up
Run Code Online (Sandbox Code Playgroud)

这表明第一行输出中的浮点数是导致错误的原因.任何人都可以告诉我如何实现我的目标吗?

python iteration row dataframe pandas

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

如何在迭代pandas数据帧时创建新列并插入行值

我正在尝试创建一个逐行迭代pandas数据帧的函数.我想基于其他列的行值创建一个新列.我的原始数据框可能如下所示:

df:

   A   B
0  1   2
1  3   4
2  2   2
Run Code Online (Sandbox Code Playgroud)

现在我想在每个索引位置创建一个填充了列A - 列B的行值的新列,以便结果如下所示:

 df:

       A   B   A-B
    0  1   2   -1
    1  3   4   -1
    2  2   2    0
Run Code Online (Sandbox Code Playgroud)

我工作的解决方案,但只有当我不在函数中使用它时:

for index, row in df.iterrows():
        print index
        df['A-B']=df['A']-df['B']
Run Code Online (Sandbox Code Playgroud)

这给了我想要的输出,但当我尝试将它用作函数时,我收到一个错误.

def test(x):
    for index, row in df.iterrows():
        print index
        df['A-B']=df['A']-df['B']
    return df
df.apply(test)

ValueError: cannot copy sequence with size 4 to array axis with dimension 3
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么,我怎么能让它发挥作用?

python iteration dataframe pandas

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

如何更改r中的树状图标签

我在R中有一个树形图.它基于使用hclust的分层聚类.我正在着色不同颜色的标签,但是当我尝试更改我的dedrogram的标签(到集群所基于的数据帧的行)时,使用dendrogram = dendrogram %>% set("labels", dataframe$column)标签被替换,但是在错误的位置.例如:

我的树形图看起来像这样:

 ___|___
|      _|_
|     |   | 
|     1   0
2
Run Code Online (Sandbox Code Playgroud)

当我现在尝试更改上面指定的标签时,标签会更改,但它们会按照数据框中的顺序从左到右应用.如果我们假设我的原始数据框看起来像这样

df:
   Column1  Column2
0     1        A
1     2        B
2     3        C
Run Code Online (Sandbox Code Playgroud)

我想要的是这个:

    ___|___
   |      _|_
   |     |   | 
   |     B   A
   C
Run Code Online (Sandbox Code Playgroud)

但我真正得到的是:

    ___|___
   |      _|_
   |     |   | 
   |     B   C
   A   
Run Code Online (Sandbox Code Playgroud)

数据的聚类及其转化为树状图的过程​​如下:

> d <- stringdistmatrix(df$Column1, df$Column1)
> cl <- hclust(as.dist(d))
> dend = as.dendrogram(cl)
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何用基于索引的另一列的值标记我的树状图?

label r cluster-analysis dendrogram dendextend

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

逐行比较两个不同长度的数据帧,并为每行添加具有相等值的列

我在 python pandas 中有两个不同长度的数据帧,如下所示:

df1:                                 df2:

      Column1  Column2 Column3            ColumnA ColumnB 
    0    1       a       r              0    1       a
    1    2       b       u              1    1       d
    2    3       c       k              2    1       e
    3    4       d       j              3    2       r
    4    5       e       f              4    2       w
                                        5    3       y 
                                        6    3       h
Run Code Online (Sandbox Code Playgroud)

我现在要做的是比较 df1 的 Column1 和 df2 的 ColumnA。对于每个“命中”,其中 df2 中 ColumnA 中的一行与 df1 中 Column1 中的一行具有相同的值,我想将一列附加到 df1,其中 df2 的 ColumnB 为找到“命中”的行,所以我的结果是这样的:

df1:

   Column1  Column2  Column3  Column4 Column5  Column6 …
Run Code Online (Sandbox Code Playgroud)

python compare dataframe pandas

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

如何从pandas数据帧中的列中删除字符串值

我试图编写一些代码,用逗号分隔数据帧列中的字符串(因此它成为一个列表),并从该列表中删除某个字符串(如果存在).删除不需要的字符串后,我想在逗号处再次加入列表元素.我的数据框看起来像这样:

df:

   Column1  Column2
0      a       a,b,c
1      y       b,n,m
2      d       n,n,m
3      d       b,b,x
Run Code Online (Sandbox Code Playgroud)

所以基本上我的目标是从column2中删除所有b值,以便我得到:

DF:

   Column1  Column2
0      a       a,c
1      y       n,m
2      d       n,n,m
3      d       x
Run Code Online (Sandbox Code Playgroud)

我写的代码如下:

df=df['Column2'].apply(lambda x: x.split(','))

def exclude_b(df):
    for index, liste in df['column2].iteritems():
        if 'b' in liste:
            liste.remove('b')
            return liste
        else:
            return liste
Run Code Online (Sandbox Code Playgroud)

第一行将列中的所有值拆分为逗号分隔列表.现在,我尝试迭代所有列表并删除b(如果存在),如果不存在则返回列表.如果我在末尾打印'liste',它只返回Column2的第一行,而不返回其他行.我究竟做错了什么?是否有办法将我的if条件实现为lambda函数?

python regex lambda dataframe pandas

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

基于python pandas中的行值合并两个数据框

我在熊猫中有两个数据框,如下所示:

df1:                                 df2:

      Column1  Column2  Column3           ColumnA  ColumnB ColumnC
    0    a        x        x            0    c        y       y
    1    c        x        x            1    e        z       z
    2    e        x        x            2    a        s       s
    3    d        x        x            3    d        f       f
Run Code Online (Sandbox Code Playgroud)

我现在想要做的是将 Column1 与 ColumnA 进行比较,并将 df2 的行附加到在 Column1 中与 df2 在 A 列中具有相同值的 df1 行,以便结果如下所示:

df1:
    Column1  Column2  Column3  ColumnB  ColumnC
  0    a        x        x        s        s
  1    c        x        x        y        y
  2    e        x        x        z        z …
Run Code Online (Sandbox Code Playgroud)

python merge dataframe pandas

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