小编Sco*_*ton的帖子

如何将python pandas scatter_matrix保存为数字?

我有一个形成scatter_matrix的数据框,但我似乎无法保存图像.我该如何保存?

import pandas as pd
my_scatter = pd.scatter_matrix(my_dataframe, diagonal="kde")
Run Code Online (Sandbox Code Playgroud)

我该怎么保存my_scatter

python pandas

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

Python 数据帧中的滚动和累积标准偏差

是否有矢量化操作来计算 Python DataFrame 的累积和滚动标准偏差 (SD)?

例如,我想添加一个列 'c',它根据列 'a' 计算累积 SD,即在索引 0 中,由于 1 个数据点,它显示 NaN,在索引 1 中,它根据 2 个数据计算 SD积分等等。

同样的问题也适用于滚动 SD。有没有一种有效的方法来计算而不通过 df.itertuples() 进行迭代?

import numpy as np
import pandas as pd

def main():
    np.random.seed(123)
    df = pd.DataFrame(np.random.randn(10, 2), columns=['a', 'b'])
    print(df)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

python dataframe standard-deviation pandas

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

向量化以计算许多距离

我是numpy / pandas和矢量化计算的新手。我正在执行数据任务,其中有两个数据集。数据集1包含一个经度和纬度的位置列表以及一个变量A。数据集2还包含一个经度和纬度的位置列表。对于数据集1中的每个位置,我想计算其到数据集2中所有位置的距离,但我只想获得数据集2中小于变量A的值的位置计数。数据集非常大,因此我需要使用向量化运算来加快计算速度。

例如,我的数据集1可能如下所示:

id lon    lat   varA
1  20.11 19.88  100
2  20.87 18.65  90
3  18.99 20.75  120
Run Code Online (Sandbox Code Playgroud)

我的数据集2可能如下所示:

placeid lon lat 
a       18.75 20.77
b       19.77 22.56
c       20.86 23.76
d       17.55 20.74 
Run Code Online (Sandbox Code Playgroud)

然后对于数据集1中的id == 1,我想计算其到数据集2中所有四个点(a,c,c,d)的距离,并且我想知道有多少距离小于对应的距离varA的值。例如,计算出的四个距离为90、70、120、110,而varA为100。则该值应为2。

我已经有一个向量化函数来计算两对坐标之间的距离。假设函数(haversine(x,y))正确实现,我有以下代码。

dataset2['count'] = dataset1.apply(lambda x: 
haversine(x['lon'],x['lat'],dataset2['lon'], dataset2['lat']).shape[0], axis 
= 1)
Run Code Online (Sandbox Code Playgroud)

但是,这给出的是行的总数,但不能满足我的要求。

谁能指出我如何使代码正常工作?

python numpy vectorization pandas

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

Dataframe聚合方法传递列表问题

这可能是一个错误,但是您对此 pandas 功能有何看法:

df = pd.DataFrame(np.arange(20).reshape(10,-1), columns=[*'AB'])

def f(x):
    print(type(x))

df.agg(f)
Run Code Online (Sandbox Code Playgroud)

输出:

<class 'pandas.core.series.Series'>
<class 'pandas.core.series.Series'>
A    None
B    None
dtype: object
Run Code Online (Sandbox Code Playgroud)

但是,如果我将 agg 方法中的函数调用包装在括号中,将单个函数作为列表传递。

df = pd.DataFrame(np.arange(20).reshape(10,-1), columns=[*'AB'])

def f(x):
    print(type(x))


df.agg([f])
Run Code Online (Sandbox Code Playgroud)

输出:

<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
      A     B
      f     f
0  None …
Run Code Online (Sandbox Code Playgroud)

python aggregate pandas

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

将 Json 文件 URL 导入 pandas 数据框

我正在尝试将其中包含 JSON 文件的 URL 作为数据框导入。

import urllib.request, json 
import pandas as pd

with urllib.request.urlopen("https://financialmodelingprep.com/api/v3/company-key-metrics/AAPL?period=quarter") as url:
    data = json.loads(url.read().decode())
    df = pd.DataFrame(data)
print(df)
Run Code Online (Sandbox Code Playgroud)

它不会将 JSON 文件中的每个指标视为一列,而是将所有指标放在名为“metrics”的一列下

而我期望的输出是

在此输入图像描述

python json pandas

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

具有断开轴和隔行彩色条的直方图

我有那些数据

        a       b       c       d       e
alpha   5.51    0.60    -0.12   26.90   76284.53
beta    3.39    0.94    -0.17   -0.20   -0.20
gamma   7.98    3.34    -1.41   7.74    28394.93
delta   2.29    1.24    0.40    0.29    0.28
Run Code Online (Sandbox Code Playgroud)

我想做一个很好的可发布直方图作为这个 隔行彩色条直方图

但是在y轴上有一个中断,所以我们可以找出a,b,c,de的变化,这样数据就不会被e列中的极值压扁,而是使用隔行彩色条直方图: 打破y轴

我想在python(matplotlib,pandas,numpy/scipy)或mathematica ...或任何其他开放和免费的高级语言(R,scilab,...)中这样做.谢谢你的帮助.

编辑:通过pandas使用matplotlib允许使用左下角"hspace"的选项按钮调整两个子图之间的空间.

python wolfram-mathematica histogram pandas

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

按整数索引排序的pandas系列中的位置访问值

我有一个带有整数索引的pandas系列,我已按其排序(按值),我如何系列中的位置访问值.

例如:

s_original = pd.Series({0: -0.000213, 1: 0.00031399999999999999, 2: -0.00024899999999999998, 3: -2.6999999999999999e-05, 4: 0.000122})
s_sorted = np.sort(s_original)

In [3]: s_original
Out[3]: 
0   -0.000213
1    0.000314
2   -0.000249
3   -0.000027
4    0.000122

In [4]: s_sorted
Out[4]: 
2   -0.000249
0   -0.000213
3   -0.000027
4    0.000122
1    0.000314

In [5]: s_sorted[3]
Out[5]: -2.6999999999999999e-05
Run Code Online (Sandbox Code Playgroud)

但我想得到值0.000122即位置 3 的项目.
我该怎么做?

python series pandas

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

将Pandas Series作为列追加到DataFrame

我有像['key','col1','col2','col3']之类的panadas数据框(df),并且我的pandas系列(sr)的索引与数据框中的'key'相同。我想用相同的“键”将系列附加到名为col4的新列的数据框中。我有以下代码:

for index, row in segmention.iterrows():    
     df[df['key']==row['key']]['col4']=sr.loc[row['key']]
Run Code Online (Sandbox Code Playgroud)

代码很慢。我认为应该有更有效,更好的方法来做到这一点。能否请你帮忙?

series pandas

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

在 countvectorizer() 中找不到 get_feature_names

我正在挖掘有关深度学习库的帖子的 Stack Overflow 数据转储。我想识别语料库中的停用词(例如“python”)。我想要获取我的特征名称,以便我可以识别术语频率最高的单词。

我按如下方式创建文档和语料库:

with open("StackOverflow_2018_Data.csv") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    line_count = 0
    pytorch_doc = ''
    tensorflow_doc = ''
    cotag_list = []
    keras_doc = ''
    counte = 0
    for row in csv_reader:
        if row[2] == 'tensorflow':
            tensorflow_doc += row[3] + ' '
        if row[2] == 'keras':
            keras_doc += row[3] + ' '
        if row[2] == 'pytorch':
            pytorch_doc += row[3] + ' '

corpus = [pytorch_doc, tensorflow_doc, keras_doc]
vectorizer = CountVectorizer()
x = vectorizer.fit_transform(corpus)
print(x)
x.toarray()
Dict = …
Run Code Online (Sandbox Code Playgroud)

python pandas sklearn-pandas countvectorizer

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

Seaborn 中的堆积条形图

我有以下数据:

countries2012 = [
    'Bolivia',
    'Brazil',
    'Sri Lanka',
    'Dominican Republic',
    'Indonesia',
    'Kenya',
    'Honduras',
    'Mozambique',
    'Peru',
    'Philipines',
    'India',
    'Vietnam',
    'Thailand',
    'USA',
    'World'
]

percentage2012 = [ 
    0.042780099,
    0.16599952,
    0.012373058,
    0.019171717,
    0.011868674,
    0.019239173,
    0.00000332,
    0.014455196,
    0.016006654,
    0.132970981,
    0.077940824,
    0.411752517,
    0.017986798,
    0.017361808,
    0.058076027
]

countries2013 = [
    'Bolivia',
    'Brazil',
    'Sri Lanka',
    'Dominican Republic', 
    'Indonesia', 
    'Honduras',
    'Mozambique', 
    'Peru', 
    'Philippines', 
    'India', 
    'Vietnam', 
    'Thailand', 
    'USA',
    'World'  
]

percentage2013 = [
    0.02736294,
    0.117160272, 
    0.015815952 ,
    0.018831589,
    0.020409103 ,
    0.00000000285,
    0.018876854,
    0.018998639,
    0.117221146,
    0.067991687,
    0.496110972,
    0.019309486,
    0.026880553,
    0.03503080414999993 …
Run Code Online (Sandbox Code Playgroud)

matplotlib seaborn

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