草庐IT

pyhton_Pandas

全部标签

python - Pandas :将不同的功能应用于不同的列

当使用df.mean()时,我得到一个结果,其中给出了每列的平均值。现在假设我想要第一列的平均值,以及第二列的总和。有没有办法做到这一点?我不想拆卸和重新组装DataFrame。我最初的想法是按照pandas.groupby.agg()的思路做一些事情,如下所示:df=pd.DataFrame(np.random.random((10,2)),columns=['A','B'])df.apply({'A':np.mean,'B':np.sum},axis=0)Traceback(mostrecentcalllast):File"",line1,indf.apply({'A':np.me

python - 在 pandas/python 中,读取存储为字符串的数组

我有一个pandas数据框,其中一列的每个元素都有字符串数组。所以像这样。col1col20120['abc','def']1130['ghi','klm']现在,当我使用to_csv将其存储到csv时,它看起来很好。当我使用from_csv读回它时,我似乎读回了。但是当我分析每个单元格中的值时,数组是'['''''a''b''c'等等。所以本质上它不是将它作为一个数组而是一组字符串来读取。有人可以建议我如何将此字符串转换为数组吗?我的意思是说数组已经像字符串一样存储了'[\'abc\',\'def\']' 最佳答案 如其他问题中所

python - 如何使用名称列表更改 pandas Dataframe 中的列名称?

我一直在尝试使用名称列表更改pandas数据框的列名称。正在使用以下代码:df.rename(columns=list_of_names,inplace=True)但是我每次都遇到类型错误,错误消息是“listobjectisnotcallable”。我想知道为什么会这样?我该怎么做才能解决这个问题?感谢您的帮助。 最佳答案 你可以用df.columns=['Leader','Time','Score'] 关于python-如何使用名称列表更改pandasDataframe中的列名称?,

python - 将 statsmodels 摘要对象转换为 Pandas Dataframe

我正在Windows10上使用statsmodels.formula.api(ver0.9.0)进行多元线性回归。拟合模型并使用以下行获取摘要后,我得到摘要对象格式的摘要.X_opt=X[:,[0,1,2,3]]regressor_OLS=sm.OLS(endog=y,exog=X_opt).fit()regressor_OLS.summary()OLSRegressionResults==============================================================================Dep.Variable:yR-squared

python - pandas dataframe group year index by decade

假设我有一个索引为每月时间步长的数据框,我知道我可以使用dataframe.groupby(lambdax:x.year)将每月数据分组为每年并应用其他操作。有什么方法可以快速对它们进行分组,比方说按十年分组?感谢任何提示。 最佳答案 要得到十年,您可以将年份除以10,然后乘以10。例如,如果您从>>>dates=pd.date_range('1/1/2001',periods=500,freq="M")>>>df=pd.DataFrame({"A":5*np.arange(len(dates))+2},index=dates)>>

python - 如何计算 Pandas 数据框中连续行之间的差异?

我有一个数据框df,包含三列:count_a、count_b和date;计数是float,日期是2015年的连续天数。我正在尝试找出count_a和count_b列中每一天的计数之间的差异—也就是说,我正在尝试计算每一天之间的差异这两列的行和前一行。我已将日期设置为索引,但我无法弄清楚如何执行此操作;有一些关于使用pd.Series和pd.DataFrame.diff的提示,但我没有找到适用的答案或说明集。我有点卡住了,希望能在这里得到一些指导。这是我的数据框的样子:df=pd.Dataframe({'count_a':{Timestamp('2015-01-0100:00:00'):

python - 如何将列添加到空的 Pandas 数据框中?

我有一个空的dataframe。df=pd.DataFrame(columns=['a'])出于某种原因,我想生成另一个空数据框df2,其中包含两列“a”和“b”。如果我这样做df.columns=df.columns+'b'它不起作用(我将列重命名为“ab”)以下也不是df.columns=df.columns.tolist()+['b']如何向df添加一个单独的列'b',并且df.emtpy保持True?也无法使用.locdf.loc[:,'b']=None因为它返回Cannotsetdataframewithnodefinedindexandascalar

python - 删除 pandas dataframe 列中包含 False 的行

我认为这是一个简单的修复,我不确定我遗漏了什么。我有一个这样的数据框:indexc1c2c32015-03-0701:27:05FalseFalseTrue2015-03-0701:27:10FalseFalseTrue2015-03-0701:27:15FalseFalseFalse2015-03-0701:27:20FalseFalseTrue2015-03-0701:27:25FalseFalseFalse2015-03-0701:27:30FalseFalseTrue我想删除c3中所有包含False的行。c3是一个dtype=bool。我一直遇到问题,因为它是boolean值而

python - 如何在不复制的情况下从单个 1D Numpy 数组构造 Pandas DataFrame

与我能找到的所有其他问题不同,我不想从同类Numpy数组创建DataFrame,也不想将结构化数组转换为DataFrame。我想要的是从每个列的单独一维Numpy数组创建一个DataFrame。我尝试了明显的DataFrame({"col":nparray,"col":nparray}),但这显示在我个人资料的顶部,所以它一定是在做一些非常慢的事情。据我了解,PandasDataFrames是用纯Python实现的,其中每一列都由一个Numpy数组支持,所以我认为有一种有效的方法可以做到这一点。我实际上想做的是从Cython有效地填充DataFrame。Cython具有允许高效访问Nu

python - 在 scikit-learn 和/或 pandas 中重新采样

Pandas或Scikit-learn中是否有根据指定策略进行重采样的内置函数?我想根据分类变量对数据重新采样。例如,如果我的数据有75%的男性和25%的女性,但我想用50%的男性和50%的女性来训练我的模型。(我还希望能够概括为不是50/50的情况)我需要的是根据指定比例对我的数据重新采样的东西。 最佳答案 我在下面尝试了一个函数来做我想做的事。希望这对其他人有帮助。X和y分别假定为PandasDataFrame和Series。defresample(X,y,sample_type=None,sample_size=None,cl