过滤csv文件中的列并输出p

2024-05-16 11:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在CSV中筛选列,就像在excel中一样。然后基于这个过滤器,我想让它调用一个不同的列,并将该列中的数据输出到绘图中。在

我试着自己打印代码并正确打印。我只是不确定语法。当我打印代码时,它显示我可以正确地搜索列

data.head()
print('banana',
      data[('Sub-Dept')] == 'Stow Each') #and data[('Sub-Dept')] == 'Stow Each Nike', 'Each Stow to Prime', 'Each Stow to Prime E', 'Each Stow to Prime W', 'Stow to Prime LeadPA')

但我不知道如何让它先过滤掉,然后在下面画出来。我对这件事很陌生。在

我有一个列里面有许多不同的可过滤名称。我想叫上面那些名字。在

^{pr2}$

现在,我希望它能输出1个有2个条的图。问题:它显示的数量是80在一个酒吧和20在另一个酒吧。解决方案:从另一列中筛选出数据后,在同一个图中的1个条形图中应该显示21个,在另一个条形图中显示7个。在

绘图部分工作得很好,从excel中提取数据也是如此。我唯一不知道该如何做的是过滤该列,然后基于该过滤器绘制图形。我不确定代码应该是什么样子,应该放在哪里。请帮忙

CSV文件:https://drive.google.com/open?id=1yJ6iQL-bOvGSLAKPcPXqgk9aKLqUEmPK


Tags: csvto数据代码绘图过滤器dataexcel
2条回答

试试看熊猫.query()

熊猫query可能有用。在

data = pd.read_csv(r'C:\Users\rmond\Downloads\PS_csvFile.csv', encoding="ISO-8859-1", skiprows=6)

new_data = data.query("Sub-Dept == Stow Each or
                       Sub-Dept == RF_Pick")

我很高兴能弄明白这一点。我在网上找不到答案。所以我希望这对将来的其他人有帮助。感谢datanawner最初的想法into.loc。这帮我找到了下一个台阶。那个我的其余回答来自于此:https://www.geeksforgeeks.org/python-pandas-extracting-rows-using-loc/

很抱歉我在代码中留下了我的评论

import pandas as pd # powerful data visualization library
import numpy as np
import matplotlib.pyplot as plt # allows us to plot things
import csv # allows us to import and use CSV commands which are simple but effective
import seaborn as sns #https://seaborn.pydata.org/generated/seaborn.boxplot.html
# This website saved my life https://www.pythonforengineers.com/introduction-to-pandas/
# use this to check the available styles: plt.style.available

x = []
y = []

data = pd.read_csv(r'C:\Users\rmond\Downloads\PS_csvFile.csv', encoding="ISO-8859-1", skiprows=6, index_col="Sub-Dept") #skiprows allows you to skip the comments on top... & ecoding allows pandas to work on this CSV
new_data = data.loc[["Each Stow to Prime", "Each Stow to Prime E", "Each Stow to Prime W", "Stow Each", "Stow Each Nike", "Stow to Prime LeadPA",]]
sns.set(style="whitegrid") #this is strictly cosmetic, you can change it any time
ax = sns.countplot(x='U.S. OSHA Recordable?', data=new_data) #magic, so seaborn is designed to pull the dats from a URL. But when using pandas and seaborn there is a work around
# the key is that "countplot" literally does the work for you. its awesome
plt.bar(x, y, label='Loaded from file!')
plt.ylabel('Quantity of Injuries')
plt.title('Stow Injuries (past 4 weeks)')
plt.show() # shows the plot to the user

相关问题 更多 >