小编Ste*_*fan的帖子

调整散点图中的点大小

我在做

ax = df.plot(x=x_col, y=y_col, style=['o', 'rx'])
Run Code Online (Sandbox Code Playgroud)

但我不喜欢数据点是大圆圈。我有数千个数据点,所以它使情节丑陋。知道如何使点变小,即让它们成为实际的点,而不是圆圈吗?或者对这种散点图有什么替代建议?

python plot matplotlib scatter-plot pandas

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

如何在熊猫中制作非数值数据的条形图

假设我有这些数据:

>>> df = pd.DataFrame(data={"age": [11, 12, 11, 11, 13, 11, 12, 11],
                        "response": ["Yes", "No", "Yes", "Yes", "Yes", "No", "Yes", "Yes"]})
>>> df
    age response
0   11  Yes
1   12  No
2   11  Yes
3   11  Yes
4   13  Yes
5   11  No
6   12  Yes
7   11  Yes
Run Code Online (Sandbox Code Playgroud)

我想制作一个条形图,显示按年龄汇总的是或否答案.有可能吗?我曾尝试histkind=bar,但也能按年龄排序,而不是绘图年龄和响应分开.

它看起来像这样:

  ^
4 |   o
3 |   o
2 |   o
1 |   ox      ox      o
0 .----------------------->
      11      12      13  
Run Code Online (Sandbox Code Playgroud)

o"是" 在哪里,x …

python matplotlib pandas seaborn

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

StratifiedKfold在异构DataFrame上

我有一个pandas DataFrame,它包含字符串和浮点数,需要拆分成平衡切片才能训练sklearn管道.

理想情况下,我会在DataFrame上使用StratifiedKFold来获取较小的数据块以进行交叉验证.但它抱怨我有无法解决的类型,如下所示:

import pandas as pd
from sklearn.cross_validation import StratifiedKFold

dataset = pd.DataFrame(
    [
        {'title': 'Dábale arroz a la zorra el abad', 'size':1.2, 'target': 1},
        {'title': 'Ana lleva al oso la avellana', 'size':1.0, 'target': 1},
        {'title': 'No te enrollé yornetón', 'size':1.4, 'target': 0},
        {'title': 'Acá sólo tito lo saca', 'size':1.4, 'target': 0},
    ])
skfs = StratifiedKFold(dataset, n_folds=2)

>>>  TypeError: unorderable types: str() > float()
Run Code Online (Sandbox Code Playgroud)

有一些方法可以获得折叠索引并对DataFrame进行切片,但我认为这并不能保证我的类会得到平衡.

拆分DataFrame的最佳方法是什么?

python machine-learning pandas scikit-learn cross-validation

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

在 Pandas 中合并数据帧会引发“断言错误:无法创建 BlockManager._ref_locs”

我正在尝试将多个文件导入csv到一个文件中,DataFrame并且在尝试添加第三个DataFrame.

AssertionError: cannot create BlockManager._ref_locs because block [ObjectBlock: [CompletionDate, Categories, DateEntered_x, <lots more columns here>...], dtype=object)] does not have _ref_locs set
Run Code Online (Sandbox Code Playgroud)

代码是:

project = pandas.read_csv(read_csv('dbo_Project.csv')
project = pandas.read_csv(read_csv('dbo_ProjectEnergy.csv')
project = pandas.read_csv(read_csv('dbo_BuildingDescription.csv')
part_merged = pandas.merge(project, project_energy,
    on='ProjectID',
    how='outer')
part_merged = pandas.merge(part_merged, project_energy_data,
    on='ProjectEnergyID',
    how='outer')
part_merged = pandas.merge(part_merged, building_description,
    on='ProjectEnergyID',
    how='outer')
Run Code Online (Sandbox Code Playgroud)

我应该如何加入这些DataFrames以避免这个问题?

为回应 Stefan Jansen 的回答而编辑:

直到出现新错误的地方的新代码是:

project = pandas.read_csv(read_csv('dbo_Project.csv')
project = pandas.read_csv(read_csv('dbo_ProjectEnergy.csv')
part_merged = pandas.concat([project, project_energy],
    axis=1,
    join='outer')
part_merged.set_index(['ProjectEnergyID'])
part_merged = pandas.concat([self.part_merged,
    project_energy_data], …
Run Code Online (Sandbox Code Playgroud)

python merge pandas

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

循环打开和关闭文件

假设我有一个包含数万个条目的列表,我想将它们写入文件。如果列表中的项目符合某些条件,我想关闭当前文件并开始一个新文件。

我有几个问题,我认为它们源于这样一个事实,即我想根据该文件中的第一个条目命名文件。此外,启动新文件的信号基于条目是否具有与前一个相同的字段。因此,例如,假设我有以下列表:

l = [('name1', 10), ('name1', 30), ('name2', 5), ('name2', 7), ('name2', 3), ('name3', 10)]
Run Code Online (Sandbox Code Playgroud)

我想最终得到 3 个文件,name1.txt应该包含10and 30name2.txt应该有5, 7and 3,并且name3.txt应该有10. 该列表已经按第一个元素排序,所以我需要做的就是检查第一个元素是否与前一个元素相同,如果不是,则开始一个新文件。

起初我试过:

name = None
for entry in l:
    if entry[0] != name:
        out_file.close()
        name = entry[0]
        out_file = open("{}.txt".format(name))
        out_file.write("{}\n".format(entry[1]))
    else:
        out_file.write("{}\n".format(entry[1]))

out_file.close()
Run Code Online (Sandbox Code Playgroud)

据我所知,这有几个问题。首先,第一次通过循环,没有out_file关闭。其次,我不能关闭最后out_file创建的,因为它是在循环内定义的。以下解决了第一个问题,但看起来很笨重:

for entry in l:
    if name:
        if entry[0] != name:
            out_file.close()
            name = entry[0] …
Run Code Online (Sandbox Code Playgroud)

python biopython pandas

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

How to replace values in column for every rows with same values in Pandas

I have a DataFrame that looks like this:

In [10]: import pandas as pd
In [11]: df = pd.read_table("http://dpaste.com/2M75260.txt",sep=",")
In [12]: df.head(n=3L)
Out[12]:
             ID    Genes  Foldchange
0    1415670_at     Copg       0.989
1    1415673_at     Psph       1.004
2  1415674_a_at  Trappc4       1.000
Run Code Online (Sandbox Code Playgroud)

In actuality there are around 40K rows. What I want to do is to change the all the values in Foldchange with same value 2.

So that it will looks like:

ID            Genes  Foldchange
1415670_at     Copg       2.000
1415673_at     Psph       2.000
1415674_a_at …
Run Code Online (Sandbox Code Playgroud)

python pandas

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