草庐IT

python - 如何一次将函数应用于 Pandas 数据框中的多列

我经常处理格式不正确的数据(即数字字段不一致等)可能还有其他我不知道的方法,但我在数据框中格式化单个列的方法是使用一个函数并将该列映射到该函数。format=df.column_name.map(format_number)问题:1-如果我有一个包含50列的数据框,并且想将该格式应用于多列,等等第1、3、5、7、9列,该怎么办你能走吗:format=df.1,3,5,9.map(format_number)..这样我就可以在一行中格式化我所有的数字列吗? 最佳答案 您可以执行df[['Col1','Col2','Col3']].ap

Python多列表迭代

有没有一种聪明的方法可以在Python中迭代两个列表(不使用列表理解)?我的意思是,像这样:#(a,b)isthecartesianproductbetweenthetwolists'elementsfora,binlist1,list2:foo(a,b)代替:forainlist1:forbinlist2:foo(a,b) 最佳答案 itertools.product()正是这样做的:fora,binitertools.product(list1,list2):foo(a,b)它可以处理任意数量的迭代器,从这个意义上说,它比嵌套的

python - Pandas :使用数据框的多列作为另一个的索引

我有一个包含我的数据的大型数据框,以及另一个具有相同第一维度的数据框,其中包含有关每个时间点的元数据(例如,它是什么试验编号,它是什么试验类型)。我想要做的是使用“元数据帧”的值对大型数据帧进行切片。我想将它们分开(而不是将元数据帧存储为较大的多索引)。现在,我正在尝试做这样的事情:defmy_func(container):container.big_df.set_index(container.meta_df[['col1','col2']])container.big_df.loc['col1val','col2val'].plot()但是,这会返回以下错误:ValueError

python - 将 Pandas 单元格中的列表拆分为多列

这个问题在这里已经有了答案:Split/Explodeacolumnofdictionariesintoseparatecolumnswithpandas(13个答案)关闭3年前。我有一个非常简单的Pandasdataframe,其中每个单元格都包含一个列表。我想将列表的每个元素拆分到它自己的列中。我可以通过导出值然后创建新的dataframe来做到这一点。这似乎不是执行此操作的好方法,尤其是当我的dataframe在列表列之外还有一列时。importpandasaspddf=pd.DataFrame(data=[[[8,10,12]],[[7,9,11]]])df=pd.DataFr

python - Pandas:如何删除以 nan 作为列名的多列?

根据标题,这是一个可重现的示例:raw_data={'x':['this','that','this','that','this'],np.nan:[np.nan,np.nan,np.nan,np.nan,np.nan],'y':[np.nan,np.nan,np.nan,np.nan,np.nan],np.nan:[np.nan,np.nan,np.nan,np.nan,np.nan]}df=pd.DataFrame(raw_data,columns=['x',np.nan,'y',np.nan])dfxNaNyNaN0thisNaNNaNNaN1thatNaNNaNNaN2this

python - 如何使用正则表达式在 Pandas 中将一列拆分为多列?

例如,如果我有这样的家庭住址:71PilgrimAvenue,ChevyChase,MD在名为“地址”的列中。我想将其分别拆分为“街道”、“城市”、“州”列。使用Pandas实现这一目标的最佳方法是什么?我试过df[['street','city','state']]=df['address'].findall(r"myregex")。但我得到的错误是使用可迭代设置时必须具有相等的len键和值。谢谢你的帮助:) 最佳答案 您可以使用split通过正则表达式,\s+(,和一个或多个空格):#borrowingsamplefrom`Al

python - 根据 Pandas 多列中的值从数据框中选择行

这个问题非常与another相关,我什至会使用这个问题上非常有用的公认解决方案中的示例。这是已接受解决方案的示例(归功于unutbu):importpandasaspdimportnumpyasnpdf=pd.DataFrame({'A':'foobarfoobarfoobarfoofoo'.split(),'B':'oneonetwothreetwotwoonethree'.split(),'C':np.arange(8),'D':np.arange(8)*2})print(df)#ABCD#0fooone00#1barone12#2footwo24#3barthree36#4foo

python - 基于多列的 Pandas 多个条件

我正在尝试根据两个条件为Pandas数据框的点着色。示例:IFvalueofcol1>aANDvalueofcol2-valueofcol3我现在已经尝试了很多不同的方法,但我在网上找到的所有内容都只取决于一个条件。我的示例代码总是引发错误:ThetruthvalueofaSeriesisambiguous.Usea.empty,a.bool(),a.item(),a.any()ora.all().这是代码。尝试了多种变体但均未成功。df=pd.DataFrame()df['A']=range(10)df['B']=range(11,21,1)df['C']=range(20,10,-

python - Pandas :将不等长列表的列拆分为多列

我有一个如下所示的Pandas数据框:codes1[71020]2[77085]3[36415]4[99213,99287]5[99233,99233,99233]我正在尝试将df['codes']中的列表拆分为列,如下所示:code_1code_2code_3171020277085336415499213992875992339923399233没有值的列(因为列表不是那么长)用空白或NaN或其他东西填充。我见过像thisone这样的答案和其他类似的方法,虽然它们在等长列表上工作,但当我尝试在不等长列表上使用这些方法时,它们都会抛出错误。有什么好的方法吗?

python - Pandas 将功能应用于多列和多行

我有一个数据框,在“xpos”、“ypos”的行和列中有连续的像素坐标,我想计算连续像素之间每条路径的角度(以度为单位)。目前我有下面介绍的解决方案,它工作正常并且我的文件大小足够快,但遍历所有行似乎不是pandas的方法。我知道如何将一个函数应用于不同的列,以及如何将函数应用于不同的列行,但不知道如何将两者结合起来。这是我的代码:fix_df=pd.read_csv('fixations_out.csv')#wyliczaniekątasakadytemp_list=[]forcount,rowindf.iterrows():x1=row['xpos']y1=row['ypos']t