小编ayh*_*han的帖子

dtype 对象上的累积操作

我想弄清楚如何将累积函数应用于对象。对于数字,有几种替代方法,例如cumsumcumcount。还有df.expanding可以与apply. 但是我传递给的函数apply不适用于对象。

import pandas as pd
df = pd.DataFrame({"C1": [1, 2, 3, 4], 
                   "C2": [{"A"}, {"B"}, {"C"}, {"D"}], 
                   "C3": ["A", "B", "C", "D"], 
                   "C4": [["A"], ["B"], ["C"], ["D"]]})

df
Out: 
   C1   C2 C3   C4
0   1  {A}  A  [A]
1   2  {B}  B  [B]
2   3  {C}  C  [C]
3   4  {D}  D  [D]
Run Code Online (Sandbox Code Playgroud)

在数据框中,我有整数值、集合、字符串和列表。现在,如果我尝试expanding().apply(sum)我有累积总和:

df.expanding().apply(sum)
Out[69]: 
     C1   C2 C3   C4
0   1.0  {A}  A  [A]
1   3.0 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

如何求和并表示一个DataFrame来创建另一个DataFrame

在列名称中创建具有一些重复单元格值的DataFrame后:

import pandas as pd
df = pd.DataFrame({'Name': ['Will','John','John','John','Alex'],
                   'Payment':  [15, 10, 10, 10, 15],
                   'Duration':    [30, 15, 15, 15, 20]})
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想继续创建另一个DataFrame,其中合并Name列中的重复值,不留下任何重复项.与此同时,我想总结约翰所做的付款价值.我继续说:

df_sum = df.groupby('Name', axis=0).sum().reset_index()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但由于df.groupby('Name', axis=0).sum()命令将sum函数应用于DataFrame中的每一列,因此也会处理持续时间(以分钟为单位的访问时间)列.相反,我想获得持续时间列的平均值.所以我需要使用mean()方法,如下所示:

df_mean = df.groupby('Name', axis=0).mean().reset_index()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,通过mean()功能,付款列现在显示了John所做的平均付款金额,而不是所有付款的总和.

如何创建一个DataFrame,其中Duration值显示平均值,而Payment值显示总和?

python dataframe pandas

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

熊猫与Numpy Dataframes

看看这几行代码:

df2 = df.copy()
df2[1:] = df[1:]/df[:-1].values -1
df2.ix[0, :] = 0
Run Code Online (Sandbox Code Playgroud)

我们的讲师说我们需要使用.values属性来访问底层的numpy数组,否则,我们的代码将无法工作.

我知道pandas DataFrame确实有一个底层表示作为一个numpy数组,但我不明白为什么我们不能使用切片直接在pandas DataFrame上操作.

你能解释一下这个吗?

python numpy multidimensional-array dataframe pandas

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

如何强制django从Shell重新启动数据库连接?

我在Digital Ocean服务器上有一个django项目。在本地计算机上,我通过ssh连接到数据库:

ssh -L 63333:localhost:5432 me@my.server
Run Code Online (Sandbox Code Playgroud)

并将我的本地settings.py更改为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': '',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': 63333
    }
}
Run Code Online (Sandbox Code Playgroud)

在本地计算机上的Jupyter QtConsole上,我按照以下步骤进行设置:

import os
import django
os.chdir('/path/to/my/project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project.settings'
django.setup()
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我的ssh连接由于某种原因断开。首先,我收到此错误(在查询数据库的一行上my_model.objects.first()):

DatabaseErrorTraceback (most recent call last)
/home/ayhan/anaconda3/lib/python3.6/site-packages/django/db/backends/utils.py in _execute(self, sql, params, *ignored_wrapper_args)
     84             else:
---> 85                 return self.cursor.execute(sql, params)
     86 

DatabaseError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
Run Code Online (Sandbox Code Playgroud)

通过ssh重新连接时,出现以下错误:

InterfaceErrorTraceback …
Run Code Online (Sandbox Code Playgroud)

python django

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

在pip3中安装jupyterlab会抛出'TypeError:期望的字符串或类似字节的对象'

背景

  • 我试图使用安装Jupyter实验室pip3 install jupyterlab,并且它抛出了同样的错误.

  • 我没弄清楚.找到一个使用的解决方法pip2 install jupyterlab- 它工作,但显然是一个绑定修复.

  • 尝试import pandas as pd在python3笔记本中运行(在jupyter实验室内); 找不到模块.

  • 我在PC上使用Cygwin作为我的linux模拟器.

  • 我更喜欢python3.x而不是python 2.7.

我试图解决这个问题

我很难解释Traceback,但现在它在下面:

$ pip install --upgrade pip
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3.6/site-packages/pip/commands/install.py", line 335, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python3.6/site-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 487, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x jupyter-notebook jupyter-lab

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

collections.deque 按值获取元素的索引

对于列表,我们可以获得元素的索引list_name.index(3)

如何获取双端队列中项目的索引。

例如: d_list = deque([1, 2, 3, 4])获取元素 3 的索引的最佳方法是什么。

编辑:我正在使用Python 2.7.6

python deque python-2.7

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

在函数中使用groupby组名

我有类似的数据:

df = pd.DataFrame({'user': np.random.choice(['a', 'b','c'], size=100, replace=True),
                   'value1': np.random.randint(10, size=100),
                   'value2': np.random.randint(20, size=100)})
Run Code Online (Sandbox Code Playgroud)

我用它来产生一些结果,例如,

grouped = df.groupby('user')
results = pd.DataFrame()
results['value2_sum'] = grouped['value2'].sum()
Run Code Online (Sandbox Code Playgroud)

对于此结果数据框的其中一列,我想将用户名传递给另一个函数,该函数使用数据框外的数据.

我尝试过类似的东西:

results['user_result'] = grouped.apply(lambda x: my_func(x.index))
Run Code Online (Sandbox Code Playgroud)

但无法找出有效的语法.

python pandas

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

import numpy和import math有什么区别

我开始探索python,并尝试使用$ \ pi $进行一些计算。这是我获得$ \ pi $的方法:

import math as m
m.pi
Run Code Online (Sandbox Code Playgroud)

但是有人建议使用numpy代替数学:

import numpy as np
np.pi
Run Code Online (Sandbox Code Playgroud)

我的问题是,两者之间有什么区别?在某些情况下,我们应选择使用一种而不是另一种?

python numpy python-3.x

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

熊猫:TypeError:sort_values()缺少1个必需的位置参数:“ by”

我面临TypeError:sort_values()缺少1个必需的位置参数:“ by”

for i in range(0,len(data_sims.index)):
for j in range(1,len(data_sims.columns)):
    user = data_sims.index[i]
    serial = data_sims.columns[j]

    if dataUser.ix[i][j] == 1:
        data_sims.ix[i][j] = 0
    else:
        serial_top_names = data_neighbours.ix[serial][1:10]
        serial_top_sims = dataSim.ix[serial].sort_values(ascending=False)[1:10]
        user_preferences = dataUser.ix[user,serial_top_names]

        data_sims.ix[i][j] = getScore(user_preferences,serial_top_sims)
Run Code Online (Sandbox Code Playgroud)

详细错误:

> ------------------------------------------------- --------------------------
TypeError跟踪(最近一次通话)
 在()中
      其他9个:
     10 serial_top_names = data_neighbours.ix [serial] [1:10]
---> 11 serial_top_sims = dataSim.ix [serial] .sort_values(ascending = False)[1:10]
     12个user_preferences = dataUser.ix [user,serial_top_names]
     13 

TypeError:sort_values()缺少1个必需的位置参数:“ by”

我尝试使用关注但没有用

pd.DataFrame.sort_values(dataSim,ascending=[0])[1:10]
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?

python pandas jupyter

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

sklearn standardscaler结果与手动结果不同

我使用了sklearn标准分析器(平均去除和方差缩放)来缩放数据帧并将其与数据帧进行比较,其中我"手动"减去平均值并除以标准偏差.比较显示了一致的微小差异.谁能解释为什么?(我使用的数据集是:http://archive.ics.uci.edu/ml/datasets/Wine

import pandas as pd
from sklearn.preprocessing import StandardScaler

df = pd.read_csv("~/DataSets/WineDataSetItaly/wine.data.txt", names=["Class", "Alcohol", "Malic acid", "Ash", "Alcalinity of ash", "Magnesium", "Total phenols", "Flavanoids", "Nonflavanoid phenols", "Proanthocyanins", "Color intensity", "Hue", "OD280/OD315 of diluted wines", "Proline"])

cols = list(df.columns)[1:]    # I didn't want to scale the "Class" column
std_scal = StandardScaler()
standardized = std_scal.fit_transform(df[cols])
df_standardized_fit = pd.DataFrame(standardized, index=df.index, columns=df.columns[1:])

df_standardized_manual = (df - df.mean()) / df.std()
df_standardized_manual.drop("Class", axis=1, inplace=True)

df_differences = df_standardized_fit - df_standardized_manual
df_differences.iloc[:,:5]


    Alcohol    Malic acid …
Run Code Online (Sandbox Code Playgroud)

python pandas scikit-learn

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