我有一个n- by- m的 Pandas DataFrame df定义如下.(我知道这不是最好的方法.对于我在实际代码中尝试做的事情是有意义的,但这个帖子的TMI就是这样,所以请理解我的方法,这种方法适用于我的特定场景.)
>>> df = DataFrame(columns=['col1'])
>>> df.append(Series([None]), ignore_index=True)
>>> df
Empty DataFrame
Columns: [col1]
Index: []
Run Code Online (Sandbox Code Playgroud)
我将列表存储在此DataFrame的单元格中,如下所示.
>>> df['column1'][0] = [1.23, 2.34]
>>> df
col1
0 [1, 2]
Run Code Online (Sandbox Code Playgroud)
出于某种原因,DataFrame将此列表存储为字符串而不是列表.
>>> df['column1'][0]
'[1.23, 2.34]'
Run Code Online (Sandbox Code Playgroud)
我有两个问题要问你.
更新
我使用的DataFrame已经保存并从CSV格式加载.这种格式而不是DataFrame本身将列表从字符串转换为文字.
我想将熊猫数据框的两列绘制为按类别并排的箱形图。这与此处提出的问题不同:Grouped boxplot with seaborn,其中两列内部有列表。那里的解决方案对我不起作用。
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(
[
[2, 4, "A"],
[4, 5, "C"],
[5, 4, "B"],
[10, 4.2, "A"],
[9, 3, "B"],
[3, 3, "C"]
], columns=['data1', 'data2', 'Categories'])
#Plotting by seaborn
fig, axs = plt.subplots(1, 1)
sns.boxplot(data=df,x="Categories",y='data1',ax=axs)
fig.show()
plt.waitforbuttonpress()
plt.close(fig)
Run Code Online (Sandbox Code Playgroud)