Python 列表的DataFrame到适当的系列
假设我在下面定义了dataframePython 列表的DataFrame到适当的系列,python,pandas,Python,Pandas,假设我在下面定义了dataframedf df = pd.DataFrame([ [[1, 2], [3, 4, 5]], [[6], [7, 8, 9, 0]] ], list('AB'), list('XY')) 我怎样才能把它弄到手 A X 0 1 1 2 Y 0 3 1 4 2 5 B X 0 6 Y 0 7 1 8
df
df = pd.DataFrame([
[[1, 2], [3, 4, 5]],
[[6], [7, 8, 9, 0]]
], list('AB'), list('XY'))
我怎样才能把它弄到手
A X 0 1
1 2
Y 0 3
1 4
2 5
B X 0 6
Y 0 7
1 8
2 9
3 0
dtype: int64
我尝试过的
我首先告诫做这件事的人。这不起作用。调用
堆栈几次,然后应用pd.Series
:
df.stack().apply(pd.Series).stack().astype(int)
结果输出:
A X 0 1
1 2
Y 0 3
1 4
2 5
B X 0 6
Y 0 7
1 8
2 9
3 0
dtype: int32
仍然在等待一个保留int而不使用astype的方法,问题是df.stack().dtype
会让您找到dtype=object。所以奇怪的是,即使是df.stack().apply(pd.Series,convert\u dtype=False,dtype=int)
也会产生浮点数。@bradsomon有一种方法!你的更快pd.concat({k:pd.Series(v)代表k,v在df.stack().iteritems()中)