AMM*_*AMM 8 python csv arrays dataframe pandas
我有一个pandas数据框,其中一列有每个元素的字符串数组.
所以这样的事情.
col1 col2
0 120 ['abc', 'def']
1 130 ['ghi', 'klm']
Run Code Online (Sandbox Code Playgroud)
现在,当我使用to_csv将其存储到csv时似乎很好.当我使用from_csv读回来时,我似乎回过头来看了.但是当我分析数组中每个单元格的值时
'[''''''''b''''等等.所以基本上它不是作为一个数组而是一组字符串读取它.有人可以建议我如何将这个字符串转换成数组吗?
我的意思是说数组已经像字符串一样存储了
'[\'abc\',\'def\']'
Run Code Online (Sandbox Code Playgroud)
And*_*den 21
如其他问题所述,您应该literal_eval
在这里使用:
from ast import literal_eval
df['col2'] = df['col2'].apply(literal_eval)
Run Code Online (Sandbox Code Playgroud)
在行动:
In [11]: df = pd.DataFrame([[120, '[\'abc\',\'def\']'], [130, '[\'ghi\',\'klm\']']], columns=['A', 'B'])
In [12]: df
Out[12]:
A B
0 120 ['abc','def']
1 130 ['ghi','klm']
In [13]: df.loc[0, 'B'] # a string
Out[13]: "['abc','def']"
In [14]: df.B = df.B.apply(literal_eval)
In [15]: df.loc[0, 'B'] # now it's a list
Out[15]: ['abc', 'def']
Run Code Online (Sandbox Code Playgroud)
没关系得到它。
我所要做的就是
arr = s[1:-1].split(',')
Run Code Online (Sandbox Code Playgroud)
这摆脱了方括号,并将字符串拆分为我想要的数组。
归档时间: |
|
查看次数: |
12278 次 |
最近记录: |