Python 基于行索引的数据帧分割
如何拆分数据帧Python 基于行索引的数据帧分割,python,pandas,Python,Pandas,如何拆分数据帧 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.6458
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
及
我相信您可以使用for secondDataFrame
:
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
或用于“按标签选择”:
print (df.loc[df.index.difference(idx)])
first second
bat 0.544883 0.891773
baz 0.602763 0.437587
我相信您可以使用for secondDataFrame
:
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
或用于“按标签选择”:
print (df.loc[df.index.difference(idx)])
first second
bat 0.544883 0.891773
baz 0.602763 0.437587
我认为您的预期subDf1输出不正确,因为它与的SubDF2可能重复项相同。我认为您的预期subDf1输出不正确,因为它与的SubDF2可能重复项相同