我有一个大约有 370 列的数据框。我正在测试一系列假设,这些假设要求我使用模型的子集来拟合三次回归模型。我计划使用 statsmodels 对这些数据进行建模。
多项式回归过程的一部分涉及均值中心变量(从特定特征的每个案例中减去均值)。
我可以用 3 行代码做到这一点,但它似乎效率低下,因为我需要为六个假设复制这个过程。请记住,我需要从 statsmodel 输出中获取系数级别的数据,因此我需要保留列名。
这是数据的一瞥。这是我的假设检验之一所需的列子集。
i we you shehe they ipron
0 0.51 0 0 0.26 0.00 1.02
1 1.24 0 0 0.00 0.00 1.66
2 0.00 0 0 0.00 0.72 1.45
3 0.00 0 0 0.00 0.00 0.53
Run Code Online (Sandbox Code Playgroud)
这是表示居中并保留列名称的代码。
from sklearn import preprocessing
#create df of features for hypothesis, from full dataframe
h2 = df[['i', 'we', 'you', 'shehe', 'they', 'ipron']]
#center the variables
x_centered = preprocessing.scale(h2, with_mean='True', with_std='False')
#convert back into a …Run Code Online (Sandbox Code Playgroud) 我试图将pandas DataFrame列中括号中出现的文本复制到另一列.我遇到过这个解决方案来解析字符串:正则表达式在括号之间返回文本
我想将结果逐元素分配给新列中的同一行.但是,这并没有直接延续到熊猫系列.我似乎map/apply/lambda似乎是要走的路.我已经到达这段代码,但是语法错误无效.
dataSources.dataUnits = dataSources.dataDescription.map(str.find("(")+1:str.find(")"))
Run Code Online (Sandbox Code Playgroud)
显然,我还不够流利 - 非常感谢.
我有一个Pandas DataFrame它有11列,但我想将DataFrame从第1列而不是第0列拆分到第10列.我可以通过更复杂的方法实现它,而不是Pandas自己提供的方法.如何使用DataFrame支持的方法来完成Pandas?
数据是595行乘11列,我想得到:
>>> import numpy as np
>>> import pandas as pd
>>> train_data = pd.DataFrame(my_data, columns=my_columns)
>>> train_data
stockid prich_m1 prich_m3 prich_m6 \
1 000002.SZ 1.55755700445 0.861009772647 5.42726384781
2 000009.SZ 3.00223270244e-07 4.8010096027 4.46164511978
.. ... ... ... ...
.. ... ... ... ...
594 603699.SH 0.0491892903353 0.934596516371 0.0196757161342
595 603993.SH 0.83105321611 0.771692272102 2.02816558693
rsi mkt_cap held_by_ins found_own \
1 0.650879566982 153108876954.0 42.6353598479 14.9550575226
2 0.462085308057 19492802690.5 25.8866394448 5.31468116104
.. ... …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用python实现线性回归.
我做了以下步骤:
import pandas as p
import numpy as n
data = p.read_csv("...path\Housing.csv", usecols=[1]) # I want the first col
data1 = p.read_csv("...path\Housing.csv", usecols=[3]) # I want the 3rd col
x = data
y = data1
Run Code Online (Sandbox Code Playgroud)
然后我尝试获得系数,并使用以下内容:
regression_coeff = n.polyfit(x,y,1)
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误:
raise TypeError("expected 1D vector for x")
TypeError: expected 1D vector for x
Run Code Online (Sandbox Code Playgroud)
我不能让我的解决这个头,因为当我打印x和y,我可以很清楚的看到,他们是一维向量.
有人可以帮忙吗?
数据集可以在这里找到:DataSet
原始代码是:
import pandas as p
import numpy as n
data = pd.read_csv('...\housing.csv', usecols = [1])
data1 = pd.read_csv('...\housing.csv', usecols …Run Code Online (Sandbox Code Playgroud) 我有类似下面的'DataFrame`:
>>> df=pd.DataFrame(index=['A','A','A','B','B','C','C','C'])
>>> df['Value1']=[1,1,1,2,1,4,4,4]
>>> df['Value2']=[1,2,3,4,5,6,7,8]
>>> df
Value1 Value2
A 1 1
A 1 2
A 1 3
B 2 4
B 1 5
C 4 6
C 4 7
C 4 8
>>>
Run Code Online (Sandbox Code Playgroud)
该索引DataFrame代表3个不同的组.我想检查组中的列值是否都相等.我目前的方法和所需的输出如下:
>>> result_list=[]
>>> for Col in df.columns:
... result=df.groupby(level=0)[Col].apply(lambda x: len(set(x))==1)
... result_list.append(result)
...
>>>
>>> final=pd.concat(result_list,1)
>>> final
Value1 Value2
A True False
B False False
C True False
>>>
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?我想知道是否可以这样做而不必循环遍历我的列DataFrame.
另外是使用len(set(x)==1)最好的方法来确定组中的所有项目是否相等?
我正在尝试生成一个条形图DataFrame,其中包含所有观察值,如下所示:数据框(行=年,列=对象,值=违反对象的年份)
使用默认熊猫时,我得到的图形类型正确plot:
cluster_yearly_results_df.plot.bar()
Run Code Online (Sandbox Code Playgroud)
但是,我想使用seaborn,并且在使用以下命令输入宽格式数据帧时遇到问题:
sns.barplot(data=cluster_yearly_results_df)
Run Code Online (Sandbox Code Playgroud)
我可以用seaborn做我想做的事吗?
鉴于以下列表:
list=['a','b','c']
Run Code Online (Sandbox Code Playgroud)
我想创建一个数据框,其中列表是值列.我希望标题是"标题".
像这样:
header
a
b
c
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正试图从雅虎财经中提取数据.
这是我得到的错误:
File "banana.py", line 35, in <module>
data = web.DataReader(ticker, "yahoo", datetime(2011,1,1), datetime(2015,12,31))
File "C:\Users\ll\Anaconda2\lib\site-packages\pandas_datareader\data.py", line 94, in DataReader
session=session).read()
File "C:\Users\ll\Anaconda2\lib\site-packages\pandas_datareader\yahoo\daily.py", line 77, in read
df = super(YahooDailyReader, self).read()
File "C:\Users\ll\Anaconda2\lib\site-packages\pandas_datareader\base.py", line 173, in read
df = self._read_one_data(self.url, params=self._get_params(self.symbols))
File "C:\Users\ll\Anaconda2\lib\site-packages\pandas_datareader\base.py", line 80, in _read_one_data
out = self._read_url_as_StringIO(url, params=params)
File "C:\Users\ll\Anaconda2\lib\site-packages\pandas_datareader\base.py", line 91, in _read_url_as_StringIO
response = self._get_response(url, params=params)
File "C:\Users\ll\Anaconda2\lib\site-packages\pandas_datareader\base.py", line 117, in _get_response
raise RemoteDataError('Unable to read URL: {0}'.format(url))
pandas_datareader._utils.RemoteDataError: Unable to read URL: http://ichart.finance.yahoo.com/table.csv
Run Code Online (Sandbox Code Playgroud)
当我从.csv文件而不是代码列表中读取时出现错误: …
假设我有这些数据:
>>> df = pd.DataFrame(data={"age": [11, 12, 11, 11, 13, 11, 12, 11],
"response": ["Yes", "No", "Yes", "Yes", "Yes", "No", "Yes", "Yes"]})
>>> df
age response
0 11 Yes
1 12 No
2 11 Yes
3 11 Yes
4 13 Yes
5 11 No
6 12 Yes
7 11 Yes
Run Code Online (Sandbox Code Playgroud)
我想制作一个条形图,显示按年龄汇总的是或否答案.有可能吗?我曾尝试hist和kind=bar,但也能按年龄排序,而不是绘图年龄和响应分开.
它看起来像这样:
^
4 | o
3 | o
2 | o
1 | ox ox o
0 .----------------------->
11 12 13
Run Code Online (Sandbox Code Playgroud)
o"是" 在哪里,x …
我有一个pandas DataFrame,它包含字符串和浮点数,需要拆分成平衡切片才能训练sklearn管道.
理想情况下,我会在DataFrame上使用StratifiedKFold来获取较小的数据块以进行交叉验证.但它抱怨我有无法解决的类型,如下所示:
import pandas as pd
from sklearn.cross_validation import StratifiedKFold
dataset = pd.DataFrame(
[
{'title': 'Dábale arroz a la zorra el abad', 'size':1.2, 'target': 1},
{'title': 'Ana lleva al oso la avellana', 'size':1.0, 'target': 1},
{'title': 'No te enrollé yornetón', 'size':1.4, 'target': 0},
{'title': 'Acá sólo tito lo saca', 'size':1.4, 'target': 0},
])
skfs = StratifiedKFold(dataset, n_folds=2)
>>> TypeError: unorderable types: str() > float()
Run Code Online (Sandbox Code Playgroud)
有一些方法可以获得折叠索引并对DataFrame进行切片,但我认为这并不能保证我的类会得到平衡.
拆分DataFrame的最佳方法是什么?
python machine-learning pandas scikit-learn cross-validation
pandas ×10
python ×10
dataframe ×3
csv ×2
scikit-learn ×2
seaborn ×2
matplotlib ×1
numpy ×1
python-3.x ×1
statsmodels ×1
string ×1