Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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 DataFrame:将唯一组件提取为列_Python_Pandas - Fatal编程技术网

Python DataFrame:将唯一组件提取为列

Python DataFrame:将唯一组件提取为列,python,pandas,Python,Pandas,我从彭博社(bloomberg)提取了30年来SP500指数的所有每日股票成分,数据框架中的指数为日期,行成分为股票 现在,我需要将这个数据框转换为日期作为索引,列作为股票,以便再次将其传递给彭博api以检索所有股票的详细信息 下面是我需要做的一个例子: 我目前有: pd.DataFrame([['A','B',np.nan],['A','B','C'],['B','C','D']]) 0 1 2 0 A B NaN 1 A B C 2 B C D 我

我从彭博社(bloomberg)提取了30年来SP500指数的所有每日股票成分,数据框架中的指数为日期,行成分为股票

现在,我需要将这个数据框转换为日期作为索引,列作为股票,以便再次将其传递给彭博api以检索所有股票的详细信息

下面是我需要做的一个例子:

我目前有:

pd.DataFrame([['A','B',np.nan],['A','B','C'],['B','C','D']])

   0  1    2
0  A  B  NaN
1  A  B    C
2  B  C    D
我希望得到这个:

pd.DataFrame([[True,True,False,False],[True,True,True,False],[False,True,True,True]],columns=['A','B','C','D'])
       A     B      C      D
0   True  True  False  False
1   True  True   True  False
2  False  True   True   True

非常感谢您的帮助

您可以使用
pd.get\u dummies

pd.get_dummies(df.stack()).max(level=0).astype(bool)
输出:

       A     B      C      D
0   True  True  False  False
1   True  True   True  False
2  False  True   True   True

如果你事先知道你的股票是什么(在你的例子中是A、B、C、D),你可以这样做:

df = pd.DataFrame([['A','B',np.nan],['A','B','C'],['B','C','D']])
stock_names = ['A', 'B', 'C', 'D']

df_new = pd.DataFrame([[X in df.iloc[i].unique() for i in range(len(df))] for X in stock_names]).transpose()
df_new.columns = stock_names

谢谢在7563x508数据帧上花费一些时间。。。我会让你知道的