我有这个pandas DataFrame填充了填充字符串的列表,我希望将其拆分为两个框架:
输入:
df = pd.DataFrame({
'A': {'a': ['NaN'],'b': ['1.11', '0.00']},
'B': {'a': ['3.33', '0.22'],'b': ['NaN']},
})
期望的输出:
df1 = pd.DataFrame({
'A': {'a': ['NaN'],'b': ['1.11']},
'B': {'a': ['3.33'],'b': ['NaN']},
})
df2 = pd.DataFrame({
'A': {'a': ['NaN'],'b': ['0.00']},
'B': {'a': ['0.22'],'b': ['NaN']},
})
我尝试使用适用于Series的apply函数,并且想知道是否有一种简单的方法来应用在整个df上实现此操作的操作。
答案 0 :(得分:4)
您可以stack
和apply(pd.Series)
s=df.stack().apply(pd.Series)
s[0].unstack()
Out[508]:
A B
a NaN 3.33
b 1.11 NaN
s[1].unstack()
Out[509]:
A B
a NaN 0.22
b 0.00 NaN
如果确实需要单细胞对象
s[0].unstack().applymap(lambda x : [x])
Out[512]:
A B
a [NaN] [3.33]
b [1.11] [NaN]
s[1].unstack().applymap(lambda x : [x])
Out[513]:
A B
a [nan] [0.22]
b [0.00] [nan]