我有一个形成scatter_matrix的数据框,但我似乎无法保存图像.我该如何保存?
import pandas as pd
my_scatter = pd.scatter_matrix(my_dataframe, diagonal="kde")
Run Code Online (Sandbox Code Playgroud)
我该怎么保存my_scatter
?
是否有矢量化操作来计算 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) 我是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)
但是,这给出的是行的总数,但不能满足我的要求。
谁能指出我如何使代码正常工作?
这可能是一个错误,但是您对此 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) 我正在尝试将其中包含 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”的一列下
而我期望的输出是
我有那些数据
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,d和e的变化,这样数据就不会被e列中的极值压扁,而是使用隔行彩色条直方图:
我想在python(matplotlib,pandas,numpy/scipy)或mathematica ...或任何其他开放和免费的高级语言(R,scilab,...)中这样做.谢谢你的帮助.
编辑:通过pandas使用matplotlib允许使用左下角"hspace"的选项按钮调整两个子图之间的空间.
我有一个带有整数索引的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 的项目.
我该怎么做?
我有像['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)
代码很慢。我认为应该有更有效,更好的方法来做到这一点。能否请你帮忙?
我正在挖掘有关深度学习库的帖子的 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) 我有以下数据:
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)