Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按行值拆分数据框列_Python_Pandas_Dataframe - Fatal编程技术网

Python 按行值拆分数据框列

Python 按行值拆分数据框列,python,pandas,dataframe,Python,Pandas,Dataframe,我有这样一个数据框: >df = pd.DataFrame({'A':['M',2,3],'B':['M',2,3],'AA':['N',20,30],'BB':['N',20,30]}) >df = df.rename(columns={df.columns[2]: 'A'}) >df = df.rename(columns={df.columns[3]: 'B'}) >df A B A B 0 M M N N 1 2 2 20 20 2 3 3

我有这样一个数据框:

>df = pd.DataFrame({'A':['M',2,3],'B':['M',2,3],'AA':['N',20,30],'BB':['N',20,30]})
>df = df.rename(columns={df.columns[2]: 'A'})
>df = df.rename(columns={df.columns[3]: 'B'})
>df

  A  B  A  B
0 M  M  N  N
1 2  2  20 20
2 3  3  30 30
我必须按行索引0='M'和'N'垂直拆分数据帧:

  A  B
0 M  M
1 2  2
2 3  3

  A  B
0 N  N
1 20 20
2 30 30
数据框中的数据来自Excel工作表,列名不唯一。
谢谢你的帮助

使用iloc选择列:

=^^=

import pandas as pd

df = pd.DataFrame({'A':['M',2,3],'B':['M',2,3],'AA':['N',20,30],'BB':['N',20,30]})
df = df.rename(columns={df.columns[2]: 'A'})
df = df.rename(columns={df.columns[3]: 'B'})

df1 = df.iloc[:, :2]
df2 = df.iloc[:, 2:]
输出:

   A  B
0  M  M
1  2  2
2  3  3
    A   B
0   N   N
1  20  20
2  30  30
将列表理解与loc一起使用:


这将在列表中提供单独的数据帧。

这将完成任务:

df.loc[:,df.iloc[0, :] == "M"]
df.loc[:,df.iloc[0, :] == "N"]

您需要将数据拆分为两个独立的数据帧?您尝试过iloc吗?
df.loc[:,df.iloc[0, :] == "M"]
df.loc[:,df.iloc[0, :] == "N"]