如何在Python DataFrame中用"/".join处理列中的列表数据
解决方法
你的问题出在"/".join(test)这行代码——它是把整个DataFrame的列名(或行索引)拼接成字符串,根本没处理Trade Price列里的列表元素,所以完全没起作用。
有两种简单的修正方式:
方式一:分组时直接完成拼接(推荐)
不用先把分组后的结果转成列表,直接在apply里完成字符串拼接:
test = df_MTM.groupby(['Underlying','Contract Month'])['Trade Price'].apply( lambda x: "/".join(map(str, x)) ).reset_index()
这里map(str, x)是把每个数值型的交易价格转成字符串,再用"/"连接起来。
方式二:对已生成的列表列做转换
如果已经得到了包含列表的testDataFrame,单独处理Trade Price列即可:
test['Trade Price'] = test['Trade Price'].apply(lambda lst: "/".join(map(str, lst)))
这行代码会遍历Trade Price列的每个列表,把列表里的元素转成字符串后用"/"连接成单个字符串。
处理后你的Trade Price列就会变成预期的格式,比如'0.0/0.0/0.128/3.145'。
内容的提问来源于stack exchange,提问作者ARE
相关产品推荐
相关产品推荐

