草庐IT

python - Pandas 作为 Flask 应用程序的快速数据存储

Pandas运行转换、加载数据的速度和易用性给我留下了深刻印象,我想利用所有这些不错的属性(以及其他属性)来为一些大型数据集建模(~100-200k行,Flask在浏览器中提供数据集的View。我目前正在使用Postgres数据库来存储数据,但是数据的导入(来自csv文件)缓慢、乏味且容易出错,从数据库中取出数据并进行处理也不容易.数据一旦导入就永远不会改变(没有CRUD操作),所以我认为将它存储为多个pandasDataFrame(以hdf5格式存储并通过pytables加载)是理想的。问题是:(1)这是个好主意吗?需要注意什么?(例如,我不希望出现并发问题,因为DataFrame是

python - 将两个指数不匹配的 Pandas 系列相乘

从df创建了两个系列:s1和s2。每个都有相同的长度但不同的索引。s1.multiply(s2)合并不匹配的索引,而不是与它们相乘。我只想将s1与s2相乘,忽略不匹配的索引。我可以运行s1.reset_index()和s2.reset_index()然后从这两个dfs中取出我想要的列,因为它将原始索引转换为一个单独的专栏,但这很乏味,我认为可能有更简单的方法来做到这一点。s1.multiply(s2,axis='columns')好像也没用 最佳答案 我认为使用reset_index()是正确的方法,但是有一个选项可以删除索引,而不

python - Pandas df 的流数据

我正在尝试模拟使用pandas来访问不断变化的文件。我有一个文件读取一个csv文件,向其中添加一行,然后随机休眠一段时间以模拟批量输入。importpandasaspdfromtimeimportsleepimportrandomdf2=pd.DataFrame(data=[['test','trial']],index=None)whileTrue:df=pd.read_csv('data.csv',header=None)df.append(df2)df.to_csv('data.csv',index=False)sleep(random.uniform(0.025,0.3))第二

Python - 在 Pandas DataFrame 中取消嵌套单元格

假设我有DataFramedf:abcvf3|4|5v26vf4|5我想生成这个df:abcvf3vf4vf5v26vf4vf5我知道如何使用tidyr包在R中进行这种转换。在pandas中有没有一种简单的方法可以做到这一点? 最佳答案 你可以:importnumpyasnpdf=df.set_index(['a','b'])df=df.astype(str)+'|'#There'saspace''tomatchthereplacelaterdf=df.c.str.split('|',expand=True).stack().res

python - 使用 pandas.DataFrame 设置值

拥有这个DataFrame:importpandasdates=pandas.date_range('2016-01-01',periods=5,freq='H')s=pandas.Series([0,1,2,3,4],index=dates)df=pandas.DataFrame([(1,2,s,8)],columns=['a','b','foo','bar'])df.set_index(['a','b'],inplace=True)df我想用一个简单的旧系列替换那里的系列,但重新采样到一天的时间段(即x.resample('D').sum().dropna())。当我尝试时:df[

python - pandas python 中没有名为 read_csv 的属性

我是机器学习的新手,正在使用Python中的pandas创建数据集。我查阅了一个教程,只是尝试了一个用于创建数据框的基本代码,但我不断收到以下回溯信息:AttributeError:'module'对象没有属性'read_csv'我已将Excel13中的csv文件保存为csv(逗号分隔)格式。这是我的代码:importpandasimportcsvmydata=pandas.read_csv('foo.csv')target=mydata["Label"]data=mydata.ix[:,:-1] 最佳答案 工作目录中有一个名为pa

python - 具有多个选择的 Pandas read_sql 查询

read_sql查询可以处理具有多个select语句的sql脚本吗?我有一个执行不同任务的MSSQL查询,但我不想为每种情况编写单独的查询。我只想编写一个查询并拉入多个表。我想在同一个脚本中进行多个查询,因为这些查询是相关的,这样可以更轻松地更新脚本。例如:SELECTColumnX_1,ColumnX_2,ColumnX_3FROMTable_XINNERJOIN(Etcetc...)----------------------SELECTColumnY_1,ColumnY_2,ColumnY_3FROMTable_YINNERJOIN(Etcetc...)这会导致两个单独的查询结果

python - hdf5 文件到 pandas 数据框

我下载了一个存储在.h5文件中的数据集。我只需要保留某些列并能够操作其中的数据。为此,我尝试将其加载到pandas数据框中。我试过使用:pd.read_hdf(path)但我得到:HDF5文件中没有数据集。我在SO(readHDF5filetopandasDataFramewithconditions)上找到了答案,但我不需要条件,答案添加了有关文件编写方式的条件,但我不是文件的创建者,所以我做不到关于那个的任何事情。我也尝试过使用h5py:df=h5py.File(path)但这并不容易操作,我似乎无法从中获取列(仅使用df.keys()的列名)关于如何执行此操作的任何想法?

Python - Pandas - 将 YYYYMM 转换为日期时间

初学者python(因此也是pandas)用户。我正在尝试将一些数据导入Pandas数据框。其中一列是日期,但格式为“YYYYMM”。我已尝试执行大多数论坛回复所建议的操作:df_cons['YYYYMM']=pd.to_datetime(df_cons['YYYYMM'],format='%Y%m')虽然这不起作用(ValueError:未转换的数据仍然存在:3)。该列实际上包括每年的附加值,MM=13。消息来源将此行用作过去一年的平均值。我猜to_datetime有问题。谁能提供一个快速的解决方案,要么去掉所有年平均值(最后两位数为“13”的那些),要么让to_datetime忽略

python - Pandas 的时间加权平均值

在Pandas0.8中计算TimeSeries的时间加权平均值的最有效方法是什么?例如,假设我想要df.y-df.x的时间加权平均值,如下所示:importpandasimportnumpyasnptimes=np.datetime64('2012-05-3114:00')+np.timedelta64(1,'ms')*np.cumsum(10**3*np.random.exponential(size=10**6))x=np.random.normal(size=10**6)y=np.random.normal(size=10**6)df=pandas.DataFrame({'x':