草庐IT

python - 合并 pandas DataFrames 时如何保留列 MultiIndex 值

我有两个pandasDataFrame,如下所示:df1=pd.DataFrame({('Q1','SubQ1'):[1,2,3],('Q1','SubQ2'):[1,2,3],('Q2','SubQ1'):[1,2,3]})df1['ID']=['a','b','c']df2=pd.DataFrame({'item_id':['a','b','c'],'url':['a.com','blah.com','company.com']})df1:Q1Q2IDSubQ1SubQ2SubQ10111a1222b2333cdf2:item_idurl0aa.com1bblah.com2ccom

python - 在同一 Pandas 数据框中交换行

我正在尝试交换pandas中同一DataFrame中的行。我试过运行a=pd.DataFrame(data=[[1,2],[3,4]],index=range(2),columns=['A','B'])b,c=a.iloc[0],a.iloc[1]a.iloc[0],a.iloc[1]=c,b但我最后两行都显示了第二行(3,4)的值。甚至变量b和c现在都分配给了3和4,尽管我没有再次分配它们。我做错了什么吗? 最佳答案 使用临时变量来存储使用.copy()的值,因为您在链上分配值时更改值,即除非您使用复制,否则数据将被直接更改。a=

python - Pandas to_datetime 丢失时区

我的原始数据有一列带有ISO8601格式的时间戳,如下所示:'2017-07-25T06:00:02+02:00'由于数据为CSV格式,因此将被读取为对象/字符串。因此,我将它转换为这样的日期时间。importpandaspddf['time']=pd.to_datetime(df['time'],utc=False)#df['time'][0]df['time'][0].isoformat()不幸的是,这会导致UTC时间戳和时区丢失。例如df['time'][0].tzinfo未设置。Timestamp('2017-07-2504:00:02')'2017-07-25T04:00:0

Python TA-Lib 不适用于 Pandas 系列

我正在尝试在Ubuntu12.04上使用python中的TA-Lib作为describedintheofficialdocumentation.但是,当使用pandasDataFrame或Series时,如不同来源的多个示例所示,我得到以下TypeError:Traceback(mostrecentcalllast):File"test1.py",line14,inanalysis['rsi']=ta.RSI(spy.Close)TypeError:Argument'real'hasincorrecttype(expectednumpy.ndarray,gotSeries)当执行例如这

python - Pandas DataFrame ApplyMap 方法

我想尝试PandasDataFrame对象的applymap方法的功能。这是用例:假设我的DataFramedf1如下:AgeIDName027101John122102Bob219103Alok327104Tom432105Matt519106Steve65107Tom755108Dick867109Harry现在我想创建一个标志变量,其逻辑是如果元素的长度小于2,则标志=1,否则标志=0。为了按元素运行这个,我想使用applymap方法。为此,我创建了一个用户定义的函数,如下所示:deff(x):iflen(str(x))>2:df1['Flag']=1else:df1['Flag

python Pandas : select 2nd smallest value in groupby

我有一个如下所示的DataFrame示例:importpandasaspdimportnumpyasnpdf=pd.DataFrame({'ID':[1,2,2,2,3,3,],'date':array(['2000-01-01','2002-01-01','2010-01-01','2003-01-01','2004-01-01','2008-01-01'],dtype='datetime64[D]')})我正在尝试获取每个ID组中的第2个最早的一天。所以我写了下面的函数:deff(x):iflen(x)==1:returnx[0]else:x.sort()returnx[1]然后我

python - 根据 Pandas python 中的两个条件选择数据框的行

我有一个df,我想运行类似这样的东西:subsetdf=df.loc[(df['Item_Desc'].str.contains('X')==True)or\(df['Item_Desc'].str.contains('Y')==True),:]选择所有在ItemDesc列中包含“X”或“Y”子字符串的行。ThetruthvalueofaSeriesisambiguous.Usea.empty,a.bool(),a.item(),a.any()ora.all().我在运行时收到错误。有帮助吗? 最佳答案 使用|代替或。所以:df.l

python - 在 Pandas 中获取平均年份(多年平均天数)

我是Pandas时间序列和数据框的新手,很难完成这个简单的任务。从2004年1月1日到2008年12月31日,我每天都有一个数据集“数据”(一维float32-Numpy数组)。日期存储为日期时间对象“日期”列表。基本上,我想计算一个完整的“标准年”——所有年份(1-365)中每一天的平均值。我从这个类似的(?)问题(Gettingtheaverageofacertainhouronweekdaysoverseveralyearsinapandasdataframe)开始,但无法得到想要的结果-365个“平均”天的时间序列,例如所有四个1月1日、1月2日的平均值...一个小示例脚本:i

python - 如何删除 Pandas 数据帧索引的 'seconds'?

给定一个时间序列数据框,如下所示:Close2015-02-2014:00:001200.12015-02-2014:10:001199.82015-02-2114:00:001199.32015-02-2114:10:001199.02015-02-2214:00:001198.42015-02-2214:10:001199.7我怎样才能摆脱索引的“秒”,使其看起来像这样:Close2015-02-2014:001200.12015-02-2014:101199.82015-02-2114:001199.32015-02-2114:101199.02015-02-2214:00119

python - 如何合并具有不同列索引级别的两个 Pandas 数据框?

我想连接两个索引相同但列级别不同的数据帧。一个数据框有层次索引,另一个没有。printdf1A_1A_2A_3.....Value_VValue_yValue_VValue_yValue_VValue_yinstance20050065001500instance201100064001500另一个:printdf2PVEstimateinstance20020023131231233instance20121341241124724结果应该是这样的:PVEstimateA_1A_2A_3.....Value_VValue_yValue_VValue_yValue_VValue_yin