草庐IT

pyhton_Pandas

全部标签

python - 在 json 中存储 pandas 数据框时保持列和行顺序

当使用to_json将数据存储在json对象中,并使用read_json读回时,返回的行和列按字母顺序排序。有没有办法让结果保持有序或在检索时重新排序? 最佳答案 您可以使用orient='split',它将索引和列信息存储在列表中,列表保持顺序:In[34]:dfOut[34]:ACB501243453678In[35]:df.to_json(orient='split')Out[35]:'{"columns":["A","C","B"],"index":[5,4,3],"data":[[0,1,2],[3,4,5],[6,7,8

python - 将 SKLearn 癌症数据集加载到 Pandas DataFrame 中

我正在尝试根据键(target_names、target和DESCR)加载sklearn.dataset,但缺少一列。我尝试了各种方法来包含最后一列,但有错误。importnumpyasnpimportpandasaspdfromsklearn.datasetsimportload_breast_cancercancer=load_breast_cancer()printcancer.keys()thekeysare['target_names','data','target','DESCR','feature_names']data=pd.DataFrame(cancer.data,

python - 通过字典有效地替换 Pandas 系列中的值

如何通过字典d替换Pandas系列s中的值已被多次询问和重新询问。推荐的方法(1、2、3、4)要么使用s.replace(d),要么偶尔使用。map(d)如果您的所有系列值都在字典键中找到。但是,使用s.replace的性能通常非常慢,通常比简单的列表理解慢5-10倍。备选方案s.map(d)具有良好的性能,但仅在字典中找到所有键时才推荐使用。为什么s.replace这么慢,如何提高性能?importpandasaspd,numpyasnpdf=pd.DataFrame({'A':np.random.randint(0,1000,1000000)})lst=df['A'].values

python - 在多级索引的一个级别上过滤 Pandas 数据框

如果我有一个带有多级索引的pandas数据框,我该如何按该索引的其中一个级别进行过滤。例如:df=pd.DataFrame({"id":[1,2,1,2],"time":[1,1,2,2],"val":[1,2,3,4]})df.set_index(keys=["id","time"],inplace=True)我想做这样的事情:df[df["time"]>1]但是time不再是一列。我可以将其保留为一列,但我不想拖拽数据副本。 最佳答案 In[17]:df[df.index.get_level_values('time')>1]O

python - 删除列值类型为字符串 Pandas 的行

我有一个Pandas数据框。我的专栏之一应该只是花车。当我尝试将该列转换为float时,系统提醒我其中有字符串。我想删除此列中的值为字符串的所有行... 最佳答案 将convert_objects与参数convert_numeric=True结合使用,这会将任何非数值强制转换为NaN:In[24]:df=pd.DataFrame({'a':[0.1,0.5,'jasdh',9.0]})dfOut[24]:a00.110.52jasdh39In[27]:df.convert_objects(convert_numeric=True)O

python - Pandas 重置 MultiIndex 的内部级别

我有以下格式的DF:col1col2IDDate11993-12-31461994-12-31851995-12-31471996-12-313322000-12-31782001-12-31592002-12-3184我想重置“日期”索引,给出以下内容:col1col2IDDate10461852473332078159284我原以为df.reset_index(level='Date',inplace=True,drop=True)会做到这一点,但事实并非如此。 最佳答案 使用pd.MultiIndex.from_arrays和

python - Pandas - 更改因子类型对象的级别顺序

我有一个Pandas数据框df,其中列school作为因子NameschoolAAnBBnCBn如何在python中将school列的级别从('An','Bn')更改为('Bn','An')?R等价于levels(df$school)=c('Bn','An') 最佳答案 您可以使用reorder_categories(你传入排序的因素):In[11]:dfOut[11]:Nameschool0AAn1BBn2CBnIn[12]:df['school']=df['school'].astype('category')In[13]:df

python - 导入错误 : No module named 'pandas'

我正在尝试学习pandas,但无法将其导入我的代码。我查看了该网站上的其他答案,但没有一个有效。我刚刚安装了anaconda并通过conda安装了所有东西。这是我尝试运行的示例脚本。importpandasaspdwriter=pd.ExcelWriter('farm_data.xlsx',engine='xlsxwriter')df.to_excel(writer,sheet_name='Sheet1')workbook=writer.bookworksheet=writer.sheets['Sheet1']chart=workbook.add_chart({'type':'colu

python - Pandas:创建数据框而不按字母顺序自动排序列名

我正在创建一个初始pandas数据框来存储从其他代码生成的结果:例如result=pd.DataFrame({'date':datelist,'total':[0]*len(datelist),'TT':[0]*len(datelist)})使用datelist预定义列表。然后其他代码会为每个date输出一些total和TT的数字,我将把它存储在result中数据框。所以我希望第一列是date,第二列是total,第三列是TT。但是,pandas会在创建时自动将其按字母顺序重新排序为TT、date、total。虽然之后我可以再次手动重新排序,但我想知道是否有更简单的方法一步完成。我觉得

python - Python 中的二阶导数 - scipy/numpy/pandas

我正在尝试使用两个numpy数据数组在python中进行二阶导数。例如,有问题的数组如下所示:importnumpyasnpx=np.array([120.,121.5,122.,122.5,123.,123.5,124.,124.5,125.,125.5,126.,126.5,127.,127.5,128.,128.5,129.,129.5,130.,130.5,131.,131.5,132.,132.5,133.,133.5,134.,134.5,135.,135.5,136.,136.5,137.,137.5,138.,138.5,139.,139.5,140.,140.5,14