擅长:python、mysql、java
<p>1)有办法避免这种行为。这里使用loc帮助。</p>
<pre><code>>>> import pandas as pd
>>> df = pd.DataFrame(columns=['column1'])
>>> df = df.append(pd.Series(data = {'column1':[None]}), ignore_index = True)
column1
0 [None]
>>> # Add list to index 0 in column1
>>> df.loc[0,'column1'] = [1.23, 2.34]
>>> print(df.loc[0, 'column1'])
[1.23, 2.34]
</code></pre>
<p>2)将此字符串转换为列表的Pythonic方法。(这可能是您想要的,因为您正在使用的数据帧已经从CSV格式保存和加载,有两种解决方案)。这是对pshep123答案的补充。</p>
<pre><code>from ast import literal_eval
import pandas as pd
csv = io.StringIO(u'''
id list
A1 [1,2]
A2 [3,4]
A3 [5,6]
''')
df = pd.read_csv(csv, delim_whitespace = True)
# Output is a string
df.loc[0, 'list']
'[1,2]'
# Convert entire column to a list
df.loc[:,'list'] = df.loc[:,'list'].apply(lambda x: literal_eval(x))
# Output is a list
df.loc[0, 'list']
[1, 2]
</code></pre>