Python Pandas-将多个值解包到另一列,并从中合并到一个Df
假设您拥有以下原始df:Python Pandas-将多个值解包到另一列,并从中合并到一个Df,python,python-3.x,pandas,Python,Python 3.x,Pandas,假设您拥有以下原始df: A B 0 {'hello':'world'} {'covid':19} 1 {'hello':'moon'} {'covid':23} 我想得到一个结果,比如: hello covid 0 world 19 1
A B
0 {'hello':'world'} {'covid':19}
1 {'hello':'moon'} {'covid':23}
我想得到一个结果,比如:
hello covid
0 world 19
1 moon 23
如何使用熊猫实现这一点
如果我这样做:
x = raw_df.A.dropna().apply(pd.Series)
y = raw_df.B.dropna().apply(pd.Series)
我将得到部分结果df,一些在x,一些在y
我们可以做
stack
和unstack
s=df.stack().apply(pd.Series).stack().reset_index(level=1,drop=True).unstack()
hello covid
0 world 19
1 moon 23
您可以尝试:
pd.concat((pd.DataFrame.from_records(x) for x in df.values.T), axis=1)
输出:
hello covid
0 world 19
1 moon 23
您能解释一下双
堆栈
,取消堆栈
,级别=1
,删除=True
的含义吗?如果我们有更多的专栏放在一边,而不需要打开包装,这是否有效it@JavaSastack and unstack是pivot的一种布局,对于drop级别,因为original的列带有A和B,并且您希望使用dict键重命名dataframe,所以我们需要删除dataframeok的原始名称,知道我为什么要使用另一个类似的示例吗<代码>{ValueError}索引包含重复的条目,无法重塑@JavaSa您每行有两个相同的dict键,这将导致问题这对我来说是开箱即用的,对我的原始示例也是如此!如果我想以这种方式重新编制索引,covid
列将被放置在hello
第一列之前,如raw_df?@JavaSa链中所示,该链具有sort_索引(aixs=1)
。您能用参数更新您的anser吗?我没有成功地按原样使用它