首页 > 解决方案 > 如何收集括号中每个位置的元素并将它们写入python中的csv文件

问题描述

   {1,2,3},{4,5,6},{7,8,9},{10,11,12}...

我有上面的一组括号。我想要做的就是,将 csv 文件中的每一列都写在括号中。

a   b   c
1   2   3
4   5   6
7   8   9
10  11  12

这就是我想在 csv 中得到的。我寻找正态分布方程以及如何切换到数据框。

df = pd.DataFrame([["asdf(q3de(18)), ( england 2020 )", 2, 3],
                ["aecf(bwe(34))/ ( korea( 2020 ))", 2, 3],
                ["nwvf(bsde(6g)) - (china(2020)", 2, 3]],
                columns = ["brand", "height", "weight"])

for i in range(len(df)):
   df['brand'][i] = re.sub(regex, '', df['brand'][i])
   print(df['brand'][i])

#this prints like this
print(df)
'''
   brand height  weight
0  asdf    2      3
1  aecf    2      3
2  nwvf    2      3

我找到的一些信息与上面的方法相同。但正如我的意图,我不知道如何调用括号中某些位置的顺序。如果它是一个列表,我可以使用 [0]、[1] 等,但这种情况不同,因为我使用了大括号。我不知道如何处理括号的位置。

标签: pythonpandas

解决方案


一种方法可能是这样的ast.literal_eval()

import ast
st = "{1,2,3},{4,5,6},{7,8,9},{10,11,12}"
st = st.replace('{', '[')
st = st.replace('}', ']')
st = list(ast.literal_eval(st))

这导致

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

您可以轻松索引和使用它。

此外,这里只是使用ast.literal_eval(st)st作为列表的元组返回,如

([1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12])

这也是可迭代的,您可以避免显式转换为列表。


推荐阅读