草庐IT

pyhton_Pandas

全部标签

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':

python - pandas.DataFrame 可以有列表类型的列吗?

是否可以创建包含列表类型字段的pandas.DataFrame?例如,我想将以下csv加载到pandas.DataFrame:id,scores1,"[1,2,3,4]"2,"[1,2]"3,"[0,2,4]" 最佳答案 去除双引号:id,scores1,[1,2,3,4]2,[1,2]3,[0,2,4]你应该能够做到这一点:query=[[1,[1,2,3,4]],[2,[1,2]],[3,[0,2,4]]]df=pandas.DataFrame(query,columns=['id','scores'])printdf

python - 如果一个值是 NaN,Pandas 用 NaN 替换一行中的所有项目

我想删除一些带有NaN的记录。这非常有效:df.dropna(axis=0,how='any',inplace=True)但是,它改变了我的数据框的形状,索引不再均匀分布。因此,我想用np.nan替换这些行中的所有项目。有没有简单的方法可以做到这一点?我正在考虑在dropna之后对数据帧进行重新采样,但这似乎只适用于规定的时间间隔,而我宁愿使用原始索引。另一种方法是使用iterrows遍历数据帧,但这也感觉很麻烦。 最佳答案 下面的命令选择任何值等于Nan的所有行,并将NaN分配给其余这些行。df.loc[df.isnull().a