我正在运行一个ols模型,我需要知道所有系数,所以我可以在我的分析中使用它们.如何以与科学计数法不同的格式显示/保存系数?
model = sm.ols(formula="sales ~ product_category + quantity_bought + quantity_ordered + quantity_returned + season", data=final_email).fit()
print model.summary()
OLS Regression Results
==============================================================================
Dep. Variable: sales R-squared: 0.974
Model: OLS Adj. R-squared: 0.938
Method: Least Squares F-statistic: 27.26
Date: Tue, 18 Apr 2017 Prob (F-statistic): 5.39e-13
Time: 11:43:36 Log-Likelihood: -806.04
No. Observations: 60 AIC: 1682.
Df Residuals: 25 BIC: 1755.
Df Model: 34
Covariance Type: nonrobust
======================================================================================
coef std err t P>|t| [95.0% Conf. Int.]
--------------------------------------------------------------------------------------
Intercept -2.79e+05 2.883e+05 -0.987 0.333 -8.92e+05 …Run Code Online (Sandbox Code Playgroud) 我不确定,如果这是最有效的方式,但我正在努力将客户支出分组到垃圾箱/桶中.
这是我正在研究的:
df.head()
Best_ID_S| Dollar
abc2464 0.00
fdhg357 672.00
hjg5235 250.00
mjhur57 199.00
erew3452 116.25
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
bins = [0,250,500,750,1000,1500,2000,2500,3000,3500,4000,4500,5000,5500,6000,6500,7000,8000,1000000000000]
#I didn't know how to create 8000+ so I just added a crazy number in the end, it works
group_names = ['0-250','251-500','501-749','750-999','1000-1499','1500-1999','2000-2499','2500-2999','3000-3499','3500-3999','4000-4499','4500-4999','5000-5499','5500-5999','6000-6499','6500-6999','7000-7499','8000+']
categories = pd.cut(df_2014['Dollar'], bins, labels=group_names)
df['Category'] = pd.cut(df['Dollar'], bins, labels=group_names)
df['Buckets'] = pd.cut(df['Dollar'], bins)
Run Code Online (Sandbox Code Playgroud)
这就是我得到的,当我做df.head()时:
Best_ID_S| Dollar | Category | Buckets
abc2464 0.00 NaN
fdhg357 672.00 501-749 (500, 750]
hjg5235 250.00 0-250 (0, 250]
mjhur57 199.00 0-250 (0, 250] …Run Code Online (Sandbox Code Playgroud) 使用以下python pandas dataframe df:
df = pd.DataFrame({'transaction_id': ['A123','A123','B345','B345','C567','C567','D678','D678'],
'product_id': [255472, 251235, 253764,257344,221577,209809,223551,290678],
'product_category': ['X','X','Y','Y','X','Y','Y','X']})
transaction_id | product_id | product_category
A123 255472 X
A123 251235 X
B345 253764 Y
B345 257344 Y
C567 221577 X
C567 209809 Y
D678 223551 Y
D678 290678 X
Run Code Online (Sandbox Code Playgroud)
我需要添加另一列"transaction_category",它查看transaction_id以及transaction_id中的哪些产品类别.这是我要找的输出:
transaction_id | product_id | product_category | transaction_id
123 255472 X X only
123 251235 X X only
345 253764 Y Y only
345 257344 Y Y only
567 221577 X X & Y
567 209809 Y …Run Code Online (Sandbox Code Playgroud) 我有以下数据框
data_df =
date value
2016-01-15 1555
2016-01-16 1678
2016-01-17 1789
...
Run Code Online (Sandbox Code Playgroud)
我想创建一个以日期为x轴的时间线图
我导入可视化模块
import matplotlib.pyplot as plt
%matplotlib inline
import vincent as vin
import seaborn as sb
Run Code Online (Sandbox Code Playgroud)
我尝试添加一列以格式化日期data_df ['dates'] = plt.date2num(ad_data.date)
然后我想绘制时间线plot_date(data_df.dates,data_df.shown)
这不起作用,因为我没有正确转换日期。
我有以下python字典:
d= {'data' : Counter({ 'important' : 2,
'very' : 3}),
'analytics' : Counter({ 'boring' : 5,
'sleep' : 3})
}
Run Code Online (Sandbox Code Playgroud)
我想以下列格式将其保存为pandas数据帧:
category | word | count
data | important | 2
data | very | 3
analytics | boring | 5
analytics | sleep | 3
Run Code Online (Sandbox Code Playgroud)
我尝试了以下,但没有一个工作
df = pd.DataFrame(d.items())
df = pd.DataFrame.from_dict(d, orient='index').reset_index()
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud) 我创建了一个数据帧df,其中我有一个包含以下值的列:
category
20150115_Holiday_HK_Misc
20150115_Holiday_SG_Misc
20140116_DE_ProductFocus
20140116_UK_ProductFocus
Run Code Online (Sandbox Code Playgroud)
我想创建3个新列
category | A | B | C
20150115_Holiday_HK_Misc 20150115_Holiday_Misc HK Holiday_Misc
20150115_Holiday_SG_Misc 20150115_Holiday_Misc SG Holiday_Misc
20140116_DE_ProductFocus 20140116_ProductFocus DE ProductFocus
20140116_UK_ProductFocus 20140116_ProductFocus UK ProductFocus
Run Code Online (Sandbox Code Playgroud)
在A栏中,我想取出"_HK" - 我想我需要手动编码,但这很好,我有所有国家代码的列表
在B栏中,就是那个国家代码
C列是A列,没有开头的日期
我正在尝试这样的事情,但没有走得太远.
df['B'] = np.where([df['category'].str.contains("HK")==True], 'HK', 'Not Specified')
Run Code Online (Sandbox Code Playgroud)
谢谢
我有以下 python 熊猫数据帧 df:
DATES Sales
0 1/6/2013 5676
1 1/8/2014 45746
2 1/10/2015 42658
3 1/14/2015 890790
4 1/16/2016 5764
5 1/20/2014 7898
Run Code Online (Sandbox Code Playgroud)
我需要将日期更改为日期时间索引,以便我可以对其进行重新采样。
但是当我这样做时
pd.to_datetime(df,infer_datetime_format=True)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:ValueError:组装映射需要至少指定[年,月,日]:[日,月,年]丢失
我有以下df:
Date Event_Counts Category_A Category_B
20170401 982457 0 1
20170402 982754 1 0
20170402 875786 0 1
Run Code Online (Sandbox Code Playgroud)
我正在为回归分析准备数据,并希望标准化Event_Counts列,以便它与类别类似.
我使用以下代码:
from sklearn import preprocessing
df['scaled_event_counts'] = preprocessing.scale(df['Event_Counts'])
Run Code Online (Sandbox Code Playgroud)
虽然我收到了这个警告:
DataConversionWarning: Data with input dtype int64 was converted to float64 by the scale function.
warnings.warn(msg, _DataConversionWarning)
Run Code Online (Sandbox Code Playgroud)
它似乎有效; 有一个新专栏.但是,它有负数,如-1.3
我认为比例函数的作用是从数字中减去均值,并将其除以每一行的标准差; 然后将结果的min添加到每一行.
这种方式对熊猫不起作用吗?或者我应该使用normalize()函数还是StandardScaler()函数?我希望标准化列的比例为0到1.
谢谢
基于我之前的问题python pandas标准化回归列我将数据帧中的特定列重新调整为0到1之间.
scaler = preprocessing.MinMaxScaler(feature_range=(0,1))
email['scaled_quantity'] = scaler.fit_transform(email['Quantity'])
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到了这个错误
DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
warnings.warn(DEPRECATION_MSG_1D, DeprecationWarning)
Run Code Online (Sandbox Code Playgroud)
@Grr建议我将缩放应用于整个数据帧,但这不是一个选项.我需要按照它们的方式维护列,并且只想添加新的其他缩放列.
如何解决此折旧错误?
我使用以下代码表示重复的行
df['duplicate']=df.Column_A.duplicated()
Run Code Online (Sandbox Code Playgroud)
但是,当我查看df时,我看到以下内容:
Column_A | duplicate
AAA False
ABC False
ABC True
Run Code Online (Sandbox Code Playgroud)
我需要第2行也是True,以便我可以轻松地过滤"重复"行.我怎么能做到这一点?
我正在进行实验设计,我需要通过预先存在的分组将数据帧df分成控制和处理组%.
这是数据帧df:
df.head()
customer_id | Group | many other columns
ABC 1
CDE 1
BHF 2
NID 1
WKL 2
SDI 2
pd.pivot_table(df,index=['Group'],values=["customer_id"],aggfunc=lambda x: len(x.unique()))
Group 1 : 55394
Group 2 : 34889
Run Code Online (Sandbox Code Playgroud)
现在我需要在df中添加一个标有"Flag"的列.对于第1组,我想随机分配50%"控制"和50%"测试".对于第2组,我想随机分配40%"控制"和60%"测试".
我正在寻找的输出:
customer_id | Group | many other columns | Flag
ABC 1 Test
CDE 1 Control
BHF 2 Test
NID 1 Test
WKL 2 Control
SDI 2 Test
Run Code Online (Sandbox Code Playgroud) 我有下表:
song_ids track_id play_count_sum user_id_count genre_id
SOAAAMT12AB018C9C4 TRYIOYF12903CD4E73 1 1 Pop_Rock
SOAAAXN12A8C13A70C TRXWDIG128F4274BF1 5 1 Latin
SOAABLP12A6D4F8861 TRXOSZE128F148A158 1 1 Pop_Rock
SOAABRT12A6D4F7940 TRUGBDI128F14548CD 13 2 International
SOAABVA12AC3DF673F TRXVIGQ12903CE7F6E 4 3 Pop_Rock
Run Code Online (Sandbox Code Playgroud)
我想通过genre_id创建条形图,但是失败了,因为它不是数值.
import matplotlib.pyplot as plt
import numpy as np
f=df.plot(df[['genre_id']].grouby(),df[['play_count_sum']].sum())
Run Code Online (Sandbox Code Playgroud) 我有以下python pandas数据帧:
Question_ID | Customer_ID | Answer
1 234 The team worked very hard ...
2 234 All the teams have been working together ...
Run Code Online (Sandbox Code Playgroud)
我将使用我的代码来计算答案列中的单词.但事先,我想从"球队"这个词中取出"s",所以在上面的例子中我统计球队:2而不是球队:1和球队:1.
我怎么能为所有的话呢?
python ×13
pandas ×12
dataframe ×2
bar-chart ×1
categories ×1
conditional ×1
date ×1
datetime ×1
dictionary ×1
duplicates ×1
format ×1
graph ×1
grouping ×1
if-statement ×1
match ×1
matplotlib ×1
nan ×1
normalize ×1
regression ×1
scale ×1
scikit-learn ×1
standardized ×1
statsmodels ×1
string ×1
word-count ×1