小编Mos*_*man的帖子

如果单行的条件为真,则标记整个组

我有一个数据框,其中包含日期和公共假期

Date    WeekNum Public_Holiday
1/1/2015    1   1
2/1/2015    1   0
3/1/2015    1   0
4/1/2015    1   0
5/1/2015    1   0
6/1/2015    1   0
7/1/2015    1   0
8/1/2015    2   0
9/1/2015    2   0
10/1/2015   2   0
11/1/2015   2   0
12/1/2015   2   0
13/1/2015   2   0
Run Code Online (Sandbox Code Playgroud)

我必须创建一个名为Public_Holiday_Week的条件列,如果该特定周有公共假日,则该列应返回1

我希望看到这样的输出

Date    WeekNum Public_Holiday  Public_Holiday_Week
1/1/2015    1   1               1
2/1/2015    1   0               1
3/1/2015    1   0               1
4/1/2015    1   0               1
5/1/2015    1   0               1
6/1/2015    1   0               1
7/1/2015    1   0               1
8/1/2015    2   0 …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas pandas-groupby

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

大熊猫如何做前滚?

我有这个数据帧:

dates = pd.date_range(start='2016-01-01', periods=20, freq='d')
df = pd.DataFrame({'A': [1] * 20 + [2] * 12 + [3] * 8,
                   'B': np.concatenate((dates, dates)),
                   'C': np.arange(40)})
Run Code Online (Sandbox Code Playgroud)

我按日期对数据框进行了排序:

df.sort_values('B',inplace=True)
Run Code Online (Sandbox Code Playgroud)

我期待在日期做一个前滚.但是,我只能使用以下方式进行后滚:

df.groupby('A').rolling(7, on='B',min_periods=0).C.sum()

A  B         
1  2016-01-01      0.0
   2016-01-02      1.0
   2016-01-03      3.0
   2016-01-04      6.0
   2016-01-05     10.0
   2016-01-06     15.0
Run Code Online (Sandbox Code Playgroud)

我想做前滚.

python pandas rolling-sum

7
推荐指数
3
解决办法
4324
查看次数

如何使用scikit计算调整后的R2值

我有一个数据集,我必须为此开发各种模型并计算所有模型的调整后的R2值。

    cv = KFold(n_splits=5,shuffle=True,random_state=45)
    r2 = make_scorer(r2_score)
    r2_val_score = cross_val_score(clf, x, y, cv=cv,scoring=r2)
    scores=[r2_val_score.mean()]
    return scores
Run Code Online (Sandbox Code Playgroud)

我已经使用上面的代码来计算每个模型的R2值。但是我更想知道每个模型的调整后的R2值python中是否有可以完成此工作的软件包?

感谢您的帮助。

python regression scikit-learn

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

根据另一个数据框的列值过滤数据框

我有 2 个数据框

df1

Company           SKU   Sales
Walmart           A     100
Total             A     200
Walmart           B     200
Total             B     300
Walmart           C     400
Walmart           D     500
Run Code Online (Sandbox Code Playgroud)

df2

 Company             SKU   Sales
 Walmart             A     400
 Total               B     300
 Walmart             C     900
 Walmart             F     400
 Total               G     500
Run Code Online (Sandbox Code Playgroud)

我想要一个结果数据框 (df2),它只包含 df1 和 df2 中匹配 SKU 的记录

df2

Company       SKU   Sales 
Walmart       A     400
Total         B     300
Walmart       C     900
Run Code Online (Sandbox Code Playgroud)

我只想要 df2 中 df1 的唯一(公司 + SKU)值

有没有什么好的解决方案来实现这一目标?

python merge filter pandas

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

如何用熊猫列的最大值替换无限值?

我有一个看起来像的数据框

City   Crime_Rate

A      10

B      20 

C      inf

D      15 
Run Code Online (Sandbox Code Playgroud)

我想用 Crime_Rate 列的最大值替换 inf,这样我的结果数据框应该看起来像

City   Crime_Rate

A      10

B      20 

C      20

D      15
Run Code Online (Sandbox Code Playgroud)

我试过

df['Crime_Rate'].replace([np.inf],max(df['Crime_Rate']),inplace=True)
Run Code Online (Sandbox Code Playgroud)

但是python将inf作为最大值,我哪里出错了?

python replace infinite pandas

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

如何获得pandas列的特定索引之间的最大值?

我有一个数据框,其中包含日期索引以及正值和负值池

values = [1,2,3,4,-1,-2,-3,10,11,12]
start_date = pd.to_datetime('2019-01-23')
dates = [start_date + datetime.timedelta(days=i) for i in range(0,len(values))]
df = pd.DataFrame(values)
df.columns = ['values'] ; df.index = dates ; df
Run Code Online (Sandbox Code Playgroud)

我想要一个附加列,其中包含第一组正值的最大值和第二组负值的最小值,依此类推。

输出应该看起来像

df['values_max'] = np.nan
df.loc['2019-01-26','values_max'] = 4
df.loc['2019-01-29','values_max'] = -3
df.loc['2019-02-01','values_max'] = 12
df
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助。

max dataframe pandas

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

如何向 pyplot 折线图添加参考线?

我有一个数据框,我为其绘制了折线图并使用以下代码添加了参考号

plt.figure(figsize=(15,5))
plt.title('Parento Analysis',fontsize=20, color = 'blue')
plt.xlabel('Product', fontsize=14)
plt.ylabel('Sales Quantity', fontsize=14)
plt.plot(parento['Cum_Product%'], parento['Cum_Sales%'],linewidth=3.0)
plt.plot([10, 10], [0, 80], 'k-', lw=1,dashes=[2, 2])
plt.plot([0, 10], [80, 80], 'k-', lw=1,dashes=[2, 2])
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的解决方案对我来说似乎有点长。有没有其他简单的方法可以绘制 (10,80) 的参考线?

python matplotlib pandas

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

填充缺失的索引,并用0填充其值

我有一个以列值作为索引号的熊猫数据框

      Sales
140   100
142   200
145   300
Run Code Online (Sandbox Code Playgroud)

我想填充缺失的索引,也想用0填充缺失的索引的值

      Sales
140   100
141   0
142   200
143   0
144   0
145   300
Run Code Online (Sandbox Code Playgroud)

我也想填写缺少的值作为缺少的索引号,例如

     Week_num
140   140
142   142
145   145

      Week_Num
140   140
141   141
142   142
143   143
144   144
145   145
Run Code Online (Sandbox Code Playgroud)

我要求您帮助我如何将此编码出来?

python indexing fill pandas

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

Python - 将嵌套列表转换为字典

我有一个嵌套列表,如何将其转换为字典

data = [["Employee","Salary","Age","Gender"],["001",1200,25,"M"],["002",1300,28,"M"],["003",1400,32,"M"],["004",1700,44,"F"]]
Run Code Online (Sandbox Code Playgroud)

字典应该在下面阅读

dict = {'Employee':['001','002','003','004'],'Salary':[1200,1300,1400,1700],'Age':[25,28,32,44],'Gender':['M','M','M','F']}
Run Code Online (Sandbox Code Playgroud)

我试图更改为Pandas DataFrame并将其转换为字典.但我正在寻找从列表到字典的直接转换

非常感谢您的帮助.在Python 3中期待答案

python dictionary list

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

在cmd中合并多个csv文件

我在一个文件夹中有多个大尺寸的csv文件,例如

file1.csv
file2.csv
file3.csv
combine.csv 
Run Code Online (Sandbox Code Playgroud)

如果我必须使用cmd合并(附加)所有这些,我知道我必须使用

copy *.csv targetfile.csv
Run Code Online (Sandbox Code Playgroud)

我的问题是,在这种情况下,如果我必须组合名称为“ file”的csv文件,该怎么办file1.csv, file2.csv, file3.csv

windows csv merge cmd

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

Pandas Dataframe 列的条件计算

我有一个 pandas 数据框,其内容如下

Category  Sales  
A           10
B           20
Run Code Online (Sandbox Code Playgroud)

我想有条件地创建新列目标

我希望我的目标 df 看起来像

Category  Sales  Target 
A           10    5
B           20   10
Run Code Online (Sandbox Code Playgroud)

我使用了下面的代码,它引发了一个错误

if(df['Category']=='A'):
    df['Target']=df['Sales']-5
else:
    df['Target']=df['Sales']-10
Run Code Online (Sandbox Code Playgroud)

python if-statement pandas

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