遍历数据框并绘制每一列
Iterating through a dataframe and plotting each column
我正在分析一些调查数据,其中包含一周中每一天的列。列中只能有两个值,如果受访者当天工作,则为 1,否则为 0。我希望能够为一周中的每一天绘制一个计数图。但是,当我 运行 下面的代码时,前七个子图是空白的,第八个子图显示计数图。最后一个情节的标题是星期一,而 x-axis 被标记为星期日。
f, ax = plt.subplots(nrows = 4, ncols = 2, figsize=(12,18))
work_days = df[['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']]
row = 0
col = 0
for i in work_days:
g = sns.countplot(x=i,data=work_days)
g.set(title = column)
col += 1
if col == 2:
col = 0
row += 1
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=.5)
我也试过下面的代码:
f, ax = plt.subplots(nrows = 4, ncols = 2, figsize=(12,18))
work_days = df[['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']]
row = 0
col = 0
for i, col in enumerate(work_days):
g = sns.countplot(x=i,data=work_days)
g.set(title = column)
col += 1
if col == 2:
col = 0
row += 1
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=.5)
此代码产生类型错误:'int' object 不可迭代。
如有任何帮助,我们将不胜感激。
如果我理解正确的话:
df = pd.DataFrame(data = np.random.randint(low=0,high=2,size=(10,5)),
columns=['Mon','Tues','Weds','Thurs','Fri'])
df2 = df.melt(var_name='day', value_name='worked')
g = sns.FacetGrid(data=df2, col='day', col_wrap=3)
g.map(sns.countplot, 'worked', order=[0,1])
plt.show()
我正在分析一些调查数据,其中包含一周中每一天的列。列中只能有两个值,如果受访者当天工作,则为 1,否则为 0。我希望能够为一周中的每一天绘制一个计数图。但是,当我 运行 下面的代码时,前七个子图是空白的,第八个子图显示计数图。最后一个情节的标题是星期一,而 x-axis 被标记为星期日。
f, ax = plt.subplots(nrows = 4, ncols = 2, figsize=(12,18))
work_days = df[['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']]
row = 0
col = 0
for i in work_days:
g = sns.countplot(x=i,data=work_days)
g.set(title = column)
col += 1
if col == 2:
col = 0
row += 1
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=.5)
我也试过下面的代码:
f, ax = plt.subplots(nrows = 4, ncols = 2, figsize=(12,18))
work_days = df[['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']]
row = 0
col = 0
for i, col in enumerate(work_days):
g = sns.countplot(x=i,data=work_days)
g.set(title = column)
col += 1
if col == 2:
col = 0
row += 1
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=.5)
此代码产生类型错误:'int' object 不可迭代。
如有任何帮助,我们将不胜感激。
如果我理解正确的话:
df = pd.DataFrame(data = np.random.randint(low=0,high=2,size=(10,5)),
columns=['Mon','Tues','Weds','Thurs','Fri'])
df2 = df.melt(var_name='day', value_name='worked')
g = sns.FacetGrid(data=df2, col='day', col_wrap=3)
g.map(sns.countplot, 'worked', order=[0,1])
plt.show()