我有两个列表和一个数组需要转换成DataFrame,这差不多就是我所拥有的:
listA = ['a', 'b', 'c', 'd'] listB = ['x', 'y', 'z'] array = [[10, 11, 12], [20, 21, 22], [30, 31, 32], [40, 41, 42]]
我希望我的DataFrame如下所示:
我尝试过通过将列表插入到
pd.Dataframe()
然后指定列的名称。但目前为止还没有成功。
6rqinv9w1#
pd.MultiIndex.from_product在这里有帮助;它将取给定的两个列表的笛卡尔积,并给出具有如下填充的2个级别的MultiIndex:
pd.MultiIndex.from_product
>>> pd.DataFrame(np.ravel(array), index=pd.MultiIndex.from_product([listA, listB]), columns=["value"]) value a x 10 y 11 z 12 b x 20 y 21 z 22 c x 30 y 31 z 32 d x 40 y 41 z 42
wn9m85ua2#
out = pd.DataFrame(array, index=listA, columns=listB).stack()
输出:
a x 10 y 11 z 12 b x 20 y 21 z 22 c x 30 y 31 z 32 d x 40 y 41 z 42 dtype: int64
2条答案
按热度按时间6rqinv9w1#
pd.MultiIndex.from_product
在这里有帮助;它将取给定的两个列表的笛卡尔积,并给出具有如下填充的2个级别的MultiIndex:wn9m85ua2#
输出: