Python 熊猫:基于索引将多行合并为一行

Python 熊猫:基于索引将多行合并为一行,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: import pandas as pd df = pd.DataFrame({'Q10: HEDGE FUND':['NO', 'YES', 'NO'], 'Q10: PRIVATE EQUITY FUND': ['NO', 'YES', 'YES'], 'Q10: REAL ESTATE FUND': ['YES', 'NO', 'NO']}).T

我有以下数据帧:

import pandas as pd

df = pd.DataFrame({'Q10: HEDGE FUND':['NO', 'YES', 'NO'],
                   'Q10: PRIVATE EQUITY FUND': ['NO', 'YES', 'YES'],
                   'Q10: REAL ESTATE FUND': ['YES', 'NO', 'NO']}).T

                            0    1    2
Q10: HEDGE FUND            NO  YES   NO
Q10: PRIVATE EQUITY FUND   NO  YES  YES
Q10: REAL ESTATE FUND     YES   NO   NO
我想要什么:

                    0    1                    2
Q10  REAL ESTATE FUND  N/A  PRIVATE EQUITY FUND
也就是说,我想把三个Q10行合并成1,列出基金的类型

每列对应一种基金类型。第0列是房地产基金(请注意,Q10:房地产基金行中有一个是)。第2列是私募股权基金(请注意,Q10:私募股权行中有一个是)。但是,列1列出了两个是,这是数据帧中的一个错误。我需要把这个改成不适用

我尝试过的:对于每一列,我都能找到“是”在每一列中的位置,但我不知道如何处理第1列(它有两个“是”,所以应该改为“不适用”),我觉得有一种更无缝的方法可以做到这一点:

df[0].tolist().index('YES')
2

我不清楚你们的专栏是什么意思,你们想要的输出是什么。我已经添加了更多的解释,希望这能有所帮助。每一列都是一个不同的“基金”,行告诉它是哪种类型的基金(第1列除外,这是数据框中的一个错误)。我想把3行YES/NO改为1行,列出基金的类型,所以如果一列中有多个YES,它们基本上都需要改为NO?然后查看哪些列是“是”?否,如果一列中有多个“是”,则这是一个错误,因此新数据帧中的行需要读取N/a,如我给出的示例所示(请参阅我想要的:)
import pandas as pd

df = pd.DataFrame({'Q10: HEDGE FUND':['NO', 'YES', 'NO'],
               'Q10: PRIVATE EQUITY FUND': ['NO', 'YES', 'YES'],
               'Q10: REAL ESTATE FUND': ['YES', 'NO', 'NO']}).T

df2 = pd.DataFrame(index = ["Q10"], columns = [0,1,2])

df = df.transpose()
Row = []
for col in df.columns:
   if df[col].value_counts()["YES"]==1:
       Row.append(col[5:])
   else:
       Row.append("N/A")

df2.loc["Q10"] = Row