小编Dan*_*ish的帖子

计算 pandas 中的行百分比

我有一个数据框,如下所示

id  val1  val2  val3
a   100   60    40
b   20    18    12
c   160   140   100
Run Code Online (Sandbox Code Playgroud)

对于每一行,我想计算百分比。

预期输出如下图

id  val1  val2  val3
a   50    30    20
b   40    36    24
c   40    35    25
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码

df['sum'] = df['val1]+df['val2]+df['val3]
df['val1] = df['val1]/df['sum']
df['val2] = df['val2]/df['sum']
df['val3] = df['val3]/df['sum']
Run Code Online (Sandbox Code Playgroud)

我想知道熊猫中是否有比这更简单和替代的方法。

pandas

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

生成带条件的随机数列表 - numpy

我想生成一个包含 15 个整数的列表,总和为 12,最小值为 0,最大值为 6。

我试过以下代码

def generate(low,high,total,entity):
   while sum(entity)!=total:
       entity=np.random.randint(low, high, size=15)
   return entity
Run Code Online (Sandbox Code Playgroud)

但上述功能无法正常工作。这太耗时了。请让我知道生成此类数字的有效方法?

random numpy pandas numpy-ndarray

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

仅从日期时间列 pandas 中提取日期

我有如下所示的数据框

Date_Time             
2019-02-27 10:00:00
2019-08-07 20:23:00
2019-02-24 00:00:00
Run Code Online (Sandbox Code Playgroud)

从上面我想只在新列中提取日期,如下所示。

预期输出:

Date_Time               Date
2019-02-27 10:00:00     2019-02-27
2019-08-07 20:23:00     2019-08-07
2019-02-24 00:00:00     2019-02-24
Run Code Online (Sandbox Code Playgroud)

尝试了下面的代码

df['Date']  = pd.to_datetime(df['Date_Time'], format="%m/%d/%Y").dt.floor('D')
Run Code Online (Sandbox Code Playgroud)

但没有提供所需的输出

datetime pandas

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

您正在 64 位操作系统(mac)上运行 32 位 Python,并且无法加载 XGBoost 库。可能的原因,Mac

我正在尝试在 mac 中运行下面的代码。

## Hyperparameter optimization using RandomizedSearchCV
from sklearn.model_selection import RandomizedSearchCV, GridSearchCV
from xgboost import XGBClassifier
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误。请帮助我,我已经尝试解决这个问题两天多了。但没有运气。

弹出的错误如下图所示,

---------------------------------------------------------------------------
XGBoostError                              Traceback (most recent call last)
<ipython-input-141-84c898b0388e> in <module>
      1 ## Hyperparameter optimization using RandomizedSearchCV
      2 from sklearn.model_selection import RandomizedSearchCV, GridSearchCV
----> 3 from xgboost import XGBClassifier

~/opt/anaconda3/lib/python3.8/site-packages/xgboost/__init__.py in <module>
      7 import os
      8 
----> 9 from .core import DMatrix, DeviceQuantileDMatrix, Booster
     10 from .training import train, cv
     11 from . import rabit  # noqa

~/opt/anaconda3/lib/python3.8/site-packages/xgboost/core.py in <module>
    171 
    172 …
Run Code Online (Sandbox Code Playgroud)

python-3.x anaconda3

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

根据行数将数据框分成六个相等的部分,而不知道行数 - pandas

我有一个 df ,如下所示。

df:

ID   Job   Salary
1    A     100
2    B     200
3    B     20
4    C     150
5    A     500
6    A     600
7    A     200
8    B     150
9    C     110
10   B     200
11   B     220
12   A     150
13   C     20
14   B     50
Run Code Online (Sandbox Code Playgroud)

我想根据行数将 df 分成 6 个相等的部分。预期输出 df1:

ID   Job   Salary
1    A     100
2    B     200
3    B     20
Run Code Online (Sandbox Code Playgroud)

df2:

ID   Job   Salary
4    C     150
5    A     500
6    A     600 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

另一列的非NaN的Groupby计数以及pandas中相同列的具体计算

我有一个数据框,如下所示

ID    Class    Score1       Score2   Name
1     A        9            7        Xavi
2     B        7            8        Alba
3     A        10           8        Messi
4     A        8            10       Neymar
5     A        7            8        Mbappe
6     C        4            6        Silva
7     C        3            2        Pique
8     B        5            7        Ramos
9     B        6            7        Serge
10    C        8            5        Ayala
11    A        NaN          4        Casilas
12    A        NaN          4        De_Gea
13    B        NaN          2        Seaman
14    C        NaN          7        Chilavert
15    B        NaN          3 …
Run Code Online (Sandbox Code Playgroud)

dataframe python-3.x pandas

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

使用从 pandas 列表中选择的随机值填充数据框的列

我与客户有一个数据框,如下所示。

df:

id      name     
1       john
2       dan
3       sam
Run Code Online (Sandbox Code Playgroud)

另外,我有一个清单

['www.costco.com', 'www.walmart.com']
Run Code Online (Sandbox Code Playgroud)

我想通过从列表中随机选择元素来添加名为domainto的列。df

预期输出:

id      name       domain
1       john       www.walmart.com
2       dan        www.costco.com
3       sam        www.costco.com
Run Code Online (Sandbox Code Playgroud)

注意:由于是随机选择,输出可能与平时不同。

它是从给定的字符串列表中随机选择的,因此它不相同且不重复。这是一个具体的问题,它得到了很好且非常具体的答案。

python numpy python-3.x pandas

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

通过从 pandas 和 scikit-learn 中的非缺失值估计方程来估算缺失值

我有一个如下所示的数据框

Price        Category      Area
20           Red           100
30           Red           150
10           Red           50
25           Red           NaN
30           Red           NaN
10           Green         30
20           Green         60
30           Green         90
10           Green         30
40           Green         NaN
50           Green         NaN
Run Code Online (Sandbox Code Playgroud)

综上所述,我想分别估计每个类别红色和绿色的面积和价格之间的关系。

例如这里的红色:

Area = 5 * Price
Run Code Online (Sandbox Code Playgroud)

同样对于绿色:

Area = 3 * Price
Run Code Online (Sandbox Code Playgroud)

我想将其实现到 pandas 和 scikit-learn 中:

步骤 1. 估计每个类别的面积和价格之间的关系。2. 基于关系估算缺失值。

我在 python 和编码方面很新。

Expected output
Price        Category      Area
20           Red           100
30           Red           150
10           Red           50
25           Red           125
30 …
Run Code Online (Sandbox Code Playgroud)

python pandas scikit-learn sklearn-pandas

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

xgboost 无法在 Mac 中加载

我正在尝试运行下面的代码。这是https://github.com/krishnaik06的 GitHub 代码。

jupyter笔记本的链接如下。

https://github.com/krishnaik06/Credit_Card-Risk-assessment/blob/master/Credit%20Card%20Risk%20Assessment.ipynb

我无法加载 xgboost 的地方

尝试在单元格下方运行,它显示一些错误。

## Hyperparameter optimization using RandomizedSearchCV
from sklearn.model_selection import RandomizedSearchCV, GridSearchCV
import xgboost
Run Code Online (Sandbox Code Playgroud)

错误:

---------------------------------------------------------------------------
XGBoostError                              Traceback (most recent call last)
<ipython-input-11-60e28ccb95f6> in <module>
      1 ## Hyperparameter optimization using RandomizedSearchCV
      2 from sklearn.model_selection import RandomizedSearchCV, GridSearchCV
----> 3 import xgboost

~/opt/anaconda3/lib/python3.8/site-packages/xgboost/__init__.py in <module>
      7 import os
      8 
----> 9 from .core import DMatrix, DeviceQuantileDMatrix, Booster
     10 from .training import train, cv
     11 from . import rabit  # noqa

~/opt/anaconda3/lib/python3.8/site-packages/xgboost/core.py in …
Run Code Online (Sandbox Code Playgroud)

python-3.x xgboost

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

根据 pandas 中的可用性数据(这些列的缺失值或 NaN 值)计算两列的平均值

我有 df 如下所示

df:

player    goals_oct     goals_nov
messi     2             4
neymar    2             NaN
ronaldo   NaN           3
salah     NaN           NaN
levenoski 2             2
Run Code Online (Sandbox Code Playgroud)

我想计算每个球员的平均进球数。这是当两个数据都可用时可用列的平均值,如果两者都不可用goals_oct则NaNgoals_nov

预期产出

player    goals_oct     goals_nov   avg_goals
messi     2             4           3
neymar    2             NaN         2 
ronaldo   NaN           3           3
salah     NaN           NaN         NaN
levenoski 2             0           1
Run Code Online (Sandbox Code Playgroud)

我尝试了下面的代码,但它不起作用

conditions_g = [(df['goals_oct'].isnull() and df['goals_nov'].notnull()), 
              (df['goals_oct'].notnull() and df['goals_nov'].isnull())]

choices_g = [df['goals_nov'], df['goals_oct']]

df['avg_goals']=np.select(conditions_g, choices_g, default=(df['goals_oct']+df['goals_nov'])/2)
Run Code Online (Sandbox Code Playgroud)

python mean pandas

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