【问题标题】:Split data frame in two disjoint sub frames based on row index基于行索引将数据帧拆分为两个不相交的子帧
【发布时间】:2020-02-17 05:05:32
【问题描述】:

如何拆分数据框

import pandas as pd
import numpy as np
np.random.seed(0)
df = pd.DataFrame({'first':np.random.rand(4),'second':np.random.rand(4)},index=['foo','bar','baz','bat'])
print(df)
        first    second
foo  0.548814  0.423655
bar  0.715189  0.645894
baz  0.602763  0.437587
bat  0.544883  0.891773

进入以下两个不相交的数据帧

        first    second
foo  0.548814  0.423655
bar  0.715189  0.645894

     first    second
baz  0.602763  0.437587
bat  0.544883  0.891773

使用第一个数据帧的索引?

我正在专门寻找类似的方法

subDf1,subDf2 = pd.split(df,['foo','bar'])

在哪里

print(subDf1)
   first    second
foo  0.548814  0.423655
bar  0.715189  0.645894

print(subDf2 )
  first    second
baz  0.602763  0.437587
bat  0.544883  0.891773

【问题讨论】:

标签: python pandas


【解决方案1】:

我相信您可以将Index.isinboolean indexing 一起使用第二个DataFrame

idx = ['foo','bar']

print (df.loc[idx])
        first    second
foo  0.548814  0.423655
bar  0.715189  0.645894

print (df[~df.index.isin(idx)])
        first    second
baz  0.602763  0.437587
bat  0.544883  0.891773

Index.differenceDataFrame.loc 按标签选择:

print (df.loc[df.index.difference(idx)])
        first    second
bat  0.544883  0.891773
baz  0.602763  0.437587

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多