在 Pandas 中使用带有MultiIndex的.loc? - python

有谁知道是否可以使用DataFrame.loc方法从MultiIndex中进行选择?我有以下DataFrame,并希望能够访问('at', 1)('at', 3)('at', 5)等等的索引(非顺序)位于“Dwell”列中的值。

我很希望能够执行类似data.loc[['at',[1,3,5]], 'Dwell']的操作,类似于常规索引的data.loc[[1,3,5], 'Dwell']语法(该操作返回一个由3个成员组成的Dwell值系列)。

我的目的是选择数据的任意子集,仅对该子集执行一些分析,然后使用分析结果更新新值。我计划使用相同的语法为这些数据设置新的值,因此在这种情况下,链接选择器实际上将不起作用。

这是我正在使用的DataFrame的一部分:

         Char    Dwell  Flight  ND_Offset  Offset
QGram                                                           
at    0     a      100     120   0.000000       0  
      1     t      180       0   0.108363       5  
      2     a      100     120   0.000000       0 
      3     t      180       0   0.108363       5 
      4     a       20     180   0.000000       0  
      5     t       80     120   0.108363       5
      6     a       20     180   0.000000       0   
      7     t       80     120   0.108363       5  
      8     a       20     180   0.000000       0  
      9     t       80     120   0.108363       5   
      10    a      120     180   0.000000       0  

谢谢!

参考方案

如果您使用的是0.14版本,则可以将元组简单地传递给.loc,如下所示:

df.loc[('at', [1,3,4]), 'Dwell']

在 Pandas 中放置多列 - python

我正在尝试使用以下代码在熊猫数据框中按索引号删除多列(数据集中的第2列和第70列,分别索引为1和69):df.drop([df.columns[[1, 69]]], axis=1, inplace=True) 我收到以下错误:TypeError: unhashable type: 'Index' 在我的代码中,[1,69]突出显示并说:E…

在 Pandas df中找到timedelta对象的均值和标准差 - python

我想通过银行与下面显示的两列mean来计算standard deviation的timedelta和dataframe。当我运行代码(也显示在下面)时,出现以下错误:pandas.core.base.DataError: No numeric types to aggregate 我的数据框: bank diff Bank of Japan 0 days 0…

在 Pandas 图中仅隐藏轴标签,而不是整个轴 - python

我可以使用以下命令清除Pandas图中xlabel的文本:plt.xlabel("") 而是可以隐藏标签吗?可能类似于.xaxis.label.set_visible(False)。 参考方案 From the Pandas docs- Series和DataFrame上的plot方法只是对plt.plot()的简单包装:这意味着您可以使…

Python Pandas:按分组分组,平均? - python

我有一个像这样的数据框:cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6 我想计算每个集群每个组织的平均时间。预期结果:cluster mean(time) 1 15 ((8+6)/2+23)/2 2 54 (74+34)/2 3 6 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…

重命名默认ID python - python

我想连接两个dataFrames,但是两个数据具有不同的ID,所以结果是错误的这是我的代码data=pd.DataFrame(df.columns) data1=data.drop(axis=1,index=[0,1,2,3]).transpose() data1 这是dataframe1另一个数据框:y=sma_algo(df.loc['H+L&…