草庐IT

panda_link

全部标签

python - pandas.crosstab 中缺少数据

我正在用pandas制作一些交叉表:a=np.array(['foo','foo','foo','bar','bar','foo','foo'],dtype=object)b=np.array(['one','one','two','one','two','two','two'],dtype=object)c=np.array(['dull','dull','dull','dull','dull','shiny','shiny'],dtype=object)pd.crosstab(a,[b,c],rownames=['a'],colnames=['b','c'])bonetwocdul

python - 尝试删除列时的 Pandas 警告

ItemY1961Y1962Y1963Y1964Y1965Y1966Y1967Y1968\8Wheat212139212221201443217656229353231643216676220347Y1969...Y2004Y2005Y2006Y2007Y2008Y2009Y2010Y2011\8215759...00000000在上面的数据框中,我尝试使用foll删除名为“Item”的列。命令:vals_bel_lux.drop('Item',axis=1,inplace=True)但是,这给了我一个foll。警告:C:\Anaconda64\lib\site-packages\pa

Python Pandas 使用另一列删除子字符串

我试过四处搜索,但找不到一个简单的方法来做到这一点,所以我希望你的专业知识能有所帮助。我有一个包含两列的Pandas数据框importnumpyasnpimportpandasaspdpd.options.display.width=1000testing=pd.DataFrame({'NAME':['FIRST',np.nan,'NAME2','NAME3','NAME4','NAME5','NAME6'],'FULL_NAME':['FIRSTLAST',np.nan,'FIRSTLAST','FIRSTNAME3','FIRSTNAME4LAST','ANOTHERNAME','

python - Pandas to_sql 给出带有时区感知列的 ValueError

我想使用pandasto_sql在postgresql中存储时区感知列。当时间不受时区感知时,它会起作用times=['201510100222','201510110333']df=pd.DataFrame()df['time']=pd.to_datetime(times)df.time.to_sql('test',engine,if_exists='replace',index=False)但是当我指定UTC时times=['201510100222','201510110333']df=pd.DataFrame()df['time']=pd.to_datetime(times,u

python - Pandas.dataframe.query() - 获取非空行(Pandas 相当于 SQL : "IS NOT NULL")

我正在使用以下代码从pandas数据框中获取具有某些值的行。我需要将此代码转换为pandas.query()。results=rs_gp[rs_gp['Col1'].notnull()]当我转换为:results=rs_gp.query('Col1!=None')它给了我错误Noneisnotdefined 最佳答案 我们可以利用NaN!=NaN的事实:In[1]:np.nan==np.nanOut[1]:False因此将列与自身进行比较将只返回非NaN值:rs_gp.query('Col1==Col1')演示:In[42]:df=

python - pandas DataFrame reset_index 可以处理重复的列名?

是否有任何等效于pandas.DataFrame.reset_index()的操作,可以处理列名重复的情况?我希望它丢弃列名并为列返回默认编号索引0,1,2..。(当我有重复的列名时,df.rename或df.reindex_axis等方法不起作用。)示例输入:pd.DataFrame(np.random.rand(5,3),columns=['A','A','B'])AAB00.50.30.910.70.90.320.90.40.830.60.20.940.70.40.6预期输出:01200.80.10.210.40.20.420.30.30.430.40.10.841.00.90.

python - pandas 获得 groupby 的平均值

我试图找到每个user_id的平均每月费用,但我只能获得每个用户的平均费用或每个用户的每月费用。因为我按用户和月份分组,所以无法获得第二个分组依据(月份)的平均值,除非我将分组依据输出转换为其他内容。这是我的df:df={'id':pd.Series([1,1,1,1,2,2,2,2]),'cost':pd.Series([10,20,30,40,50,60,70,80]),'mth':pd.Series([3,3,4,5,3,4,4,5])}costidmth0101312013230143401545023560246702478025我可以获得每月总和,但我想要每个user_id

python - 从 Pandas 数据框中过滤只有零的列

我有一个Pandas数据框,我想在其中过滤掉所有仅包含零的列。例如,在下面的数据框中,我想删除第2列:0123400.3810.7940.0000.9640.30410.5380.0290.0000.3270.92820.0410.3120.0000.2080.28430.4060.7860.0000.3340.11840.5110.1660.0000.1810.980我该怎么做?我一直在尝试这样的事情:df.filter(lambdax:x==0) 最佳答案 以下对我有用。它给出了一个系列,其中列名现在是索引,索引的值是True/

python - 合并 Pandas 中的 2 个数据帧 : join on some columns, 总结其他

我想合并特定列(key1,key2)上的两个数据框,并求和另一列(value)的值。>>>df1=pd.DataFrame({'key1':range(4),'key2':range(4),'value':range(4)})key1key2value0000111122223333>>>df2=pd.DataFrame({'key1':range(2,6),'key2':range(2,6),'noise':range(2,6),'value':range(10,14)})key1key2noisevalue022210133311244412355513我想要这样的结果:key1k

python - Pandas 按数据框上的操作分组

我有一个如下所示的Pandas数据框。UsrIdJobNos141562232552412537812531我根据UsrId按数据框分组。分组数据框在概念上如下所示。UsrIdJobNos1[4,56,25]2[23,55,41,5]3[78,1]现在,我正在寻找一个内置API,它将为我提供具有最大作业数的UsrId。对于上面的示例,UsrId-2具有最大计数。更新:我想要的不是具有最大作业数的UsrID,而是具有最大作业数的nUserIds。对于上面的示例,如果n=2则输出为[2,1]。这能做到吗? 最佳答案 像df.groupb