提问人:Jack S 提问时间:1/14/2022 最后编辑:Ken WhiteJack S 更新时间:1/16/2022 访问量:124
如何拆分从函数输出的坐标列表?
How can I split a list of coordinates that output from a function?
问:
在python中,我在Excel中将多个坐标列表(不同长度)以表格形式写入行,我想将它们拆分为所需的列数,以便在每个列表的相应行中每列设置一个列: .如果我直接进入文本到列,我无法选择多个分隔符(去掉方括号等),所以我决定先做一些处理:[(x1, y1), (x2, y2), ..., (xn, yn)]
x1,y1 | x2,y2 | ... | xn,yn
我现在有
=MID(B2, 2, LEN(B2)-2)
(x1, y1), (x2, y2), ..., (xn, yn)
=SUBSTITUTE(C2," ", "")
(x1,y1),(x2,y2),...,(xn,yn)
=SUBSTITUTE(D2, "),(", ");(")
(x1,y1);(x2,y2);...;(xn,yn)
因此,从理论上讲,我现在可以使用文本到列并用作分隔符。但是,当我尝试这样做时,它会尝试拆分该单元格中的公式,而不是公式生成的文本:按分号拆分单元格;
有谁知道我可以使用文本本身的方法,或者更好的是,一种更简单的整体数据处理方式?谢谢!
答:
0赞
DS_London
1/16/2022
#1
如果我理解正确,起始 DataFrame 可能如下所示:
Points
Game1 [(1, 2), (3, 4), (5, 6)]
Game2 [(7, 8), (9, 10)]
Game3 [(11, 12), (13, 14), (15, 16), (17, 18)]
DataFrames 可以处理不同长度的行:
import pandas as pd
input_df = pd.DataFrame([
[[(1,2),(3,4),(5,6)]],
[[(7,8),(9,10)]],
[[(11,12),(13,14),(15,16),(17,18)]] ],
index=['Game1','Game2','Game3'],
columns=['Points'])
df = pd.DataFrame( data=[['{0:},{1:}'.format(a,b) for a,b in r]
for r in input_df['Points'].tolist()],
index=input_df.index )
df.to_excel('c:\\somepath\\coords.xlsx',header=False)
生成的 Excel 工作表如下所示:
评论