gpt4 book ai didi

python - 将可变长度字符串数组转换为数据帧

转载 作者:行者123 更新时间:2023-12-01 07:25:43 25 4
gpt4 key购买 nike

每行都有一个可变长度字符串数组,其中列标签在字符串内容中指示。然而,柱的尺寸是可变的并且尺寸可能很大。如何将此格式转换为数据帧?例如

输入:

np.array([['Hour: 1', 'Name: EVENT_1', 'Column1: A'],
['Hour: 2', 'Name: EVENT_2', 'Column1: B','Column2: BCX'],
['Hour: 2', 'Name: EVENT_2', 'Column1: C','Column3: BCY','Column4: BCE'],
['Hour: 4', 'Name: EVENT_4','Column1: D', 'Column3: BCZ'],
['Hour: 5','Name: EVENT_5','Column2: BC', 'Column99: BCR' ,'Column100: BCA']
])

预期输出:

Hour |  Name     |Column1|Column2|Column3|Column4...Column99|Column100
1 | EVENT_1 | AA | BCX | | ... |
2 | EVENT_2 | BQ | | | BCE ... |
3 | EVENT_3 | CW | | BCY | ... |
4 | EVENT_4 | DF | | BCZ | ... |
5 | EVENT_5 | | BC | | ... BCR | BCA

最佳答案

Ola,欢迎来到 Stack Overflow

AS @jirassimok 提到你需要迭代来构造一个字典。这是一段可以提供帮助的代码:

#Array to collect all rows
new_array=[]
#For every row
for r in rows:
#Array to collect new row
new_row={}
#For every "column: value" pair convert to dictionary
for c_v in r:
#Add all values to their column
new_row[c_v.split(': ')[0]]=c_v.split(': ')[1]
new_array+=[new_row]
pd.DataFrame(new_array)

如果您确实需要节省空间,您可以使用字典和列表理解将上面的内容转换为一行

pd.DataFrame([{x.split(': ')[0]:x.split(': ')[1] for x in r} for r in rows]) 

关于python - 将可变长度字符串数组转换为数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57464551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com