Python 进入新的数据帧

Python 进入新的数据帧,python,pandas,dataframe,jupyter-notebook,unique,Python,Pandas,Dataframe,Jupyter Notebook,Unique,我有一些熊猫的数据: df1 df1['ID_A'].nunique() 5 df2 df2['ID_B'].nunique() 6 df3 df1['ID_A'].nunique() 2 df4 df2['ID_B'].nunique() 9 依此类推,直到200df 如何在此基础上创建新的dataframe 我的预期结果如下所示: combine ID_A ID_B combine_1 5 6 combine_2 2 9 感谢您将列表理解与数据帧列

我有一些熊猫的数据:

df1
df1['ID_A'].nunique()
5
df2
df2['ID_B'].nunique()
6
df3
df1['ID_A'].nunique()
2
df4
df2['ID_B'].nunique()
9
依此类推,直到200
df

如何在此基础上创建新的
dataframe

我的预期结果如下所示:

  combine    ID_A  ID_B
  combine_1  5     6
  combine_2  2     9

感谢您

将列表理解与数据帧列表一起使用,如有必要,通过使用f字符串的列表理解来更改索引名称:

df1 = pd.DataFrame({'ID_A':[1,2,3,4,5,5],
                    'ID_B':[1,2,3,4,5,6]})

df2 = pd.DataFrame({'ID_A':[1,2,1,2,1,1,1,2,1],
                    'ID_B':[1,2,3,4,5,6,7,8,9]})

dfs = [df1, df2]
df = pd.DataFrame([x.nunique() for x in dfs])
df.index = [f'combine_{x+1}' for x in df.index]
df.index.name= 'combine'
print (df)
           ID_A  ID_B
combine              
combine_1     5     6
combine_2     2     9
如有必要,仅按列表筛选列:

cols = ['ID_A', 'ID_B']
dfs = [df1, df2]
df = pd.DataFrame([x[cols].nunique() for x in dfs])
#filter only columns starting by ID_
#df = pd.DataFrame([x.filter(regex='^ID_').nunique() for x in dfs])
df.index = [f'combine_{x+1}' for x in df.index]
df.index.name= 'combine'

你期望的索引是什么样子的?如果可能的话,索引可能是
combine_1
combine_2
,那么像这样的索引如何:第一个combine_1和第二个Group_1?@Arief-如果只有
[df1,df2]
那么
df.index=['combine_1','Group_1']
应该是200 df呢?在合并和分组后有一个序列号?所以需要
['combine_1','group_1','combine_2','group_2',…]
?@Arief-这是个问题,如果需要这种格式,或者另一种格式:),然后我创建解决方案