0%

pandas: 元素是转换成DataFrame的列表, 如何将它展开多列?

pandas: 元素是转换成DataFrame的列表, 如何将它展开多列?

df=pd.DataFrame(data=[["a","b", [{"name": "Leo", "sex": "man"},{"name":"hazel","sex": "woman"}]],["c","d",[{"name": "jack", "sex": "man"}]]], columns=["A","B","res"])

a = df.set_index(["A","B"])["res"].apply(pd.Series).stack()

aaa = pd.DataFrame(a.to_list(), index=a.index).reset_index()

写成一个需求实现方法

def expand_msg(df: pd.DataFrame, expand_msg: str) -> pd.DataFrame:
    """
    展开json列表数据
    :param df:
    :param expand_msg: 要展开的字段名
    :return:
    """
    columns = df.columns.to_list()
    columns.pop(columns.index(expand_msg))
    df = df.set_index(columns)[expand_msg].apply(pd.Series).stack().reset_index(columns)
    return df

原文博主: 热衷开源的宝藏Boy
原文链接: http://www.fangzengye.com/article/01222eda2292bc00d41237e65f163ccd
版权声明: 自由转载-非商用-禁止演绎-保持署名| CC BY-NC-ND 3.0

微信扫码加入我的星球联系我

评论区