\n","author":{"@type":"Person","name":"SQL Learner 1"},"upvoteCount":1,"answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"
'Success'
and 'Failure'
for each company and then sort by the total.import pandas as pd\n\ndf = pd.read_csv('data.csv')\n#add a success column\nvalues = ['Success']\nconditions = list(map(df['Outcome'].str.contains, values))\ndf['outcome'] = np.select(conditions, values, 'Failure')\n\ns = df.groupby(['Company','outcome']).size().unstack()\n\n# add the row wise sum for each company\ns['total'] = s.sum(axis=1)\n\n# sort\ns.sort_values('total', inplace=True)\n\n# plot\nax = s[['Failure', 'Success']].plot(kind='barh', stacked=True, color=['Red', 'Green'], figsize=[15, 8])\n\n# set the xscale for better visibility of data\nax.set_xscale('log') # use 'symlog' if there are negative values\n\nplt.savefig('hbar.png')\n
\n\ndata = {'Company': ['SpaceX', 'CASC', 'SpaceX', 'Roscosmos', 'ULA', 'CASC', 'Roscosmos', 'CASC', 'SpaceX', 'JAXA', 'Northrop', 'ExPace', 'CASC', 'IAI', 'CASC', 'Rocket Lab', 'CASC', 'SpaceX', 'CASC', 'CASC', 'SpaceX', 'Rocket Lab', 'CASC', 'SpaceX', 'CASC', 'SpaceX', 'CASC', 'Virgin Orbit', 'VKS RF', 'MHI', 'ULA', 'ExPace', 'CASC', 'Roscosmos', 'SpaceX', 'IRGC', 'CASC', 'Roscosmos', 'ULA', 'CASC', 'Arianespace', 'SpaceX', 'VKS RF', 'CASC', 'CASC', 'SpaceX', 'VKS RF', 'CASC', 'Arianespace', 'SpaceX', 'Northrop', 'ULA', 'ISA', 'MHI', 'Arianespace', 'Rocket Lab', 'SpaceX', 'SpaceX', 'Arianespace', 'ExPace', 'CASC', 'CASC', 'SpaceX', 'CASC', 'VKS RF', 'Roscosmos', 'ULA', 'CASC', 'Arianespace', 'SpaceX', 'CASC', 'Blue Origin', 'ISRO', 'VKS RF', 'ExPace', 'ExPace', 'Roscosmos', 'Rocket Lab', 'SpaceX', 'CASC', 'ISRO', 'Arianespace', 'VKS RF', 'CASC', 'ExPace', 'CASC', 'ExPace', 'SpaceX', 'CASC', 'CASC', 'Northrop', 'Exos', 'CASC', 'Rocket Lab', 'Northrop', 'ILS', 'CASC', 'VKS RF', 'Roscosmos', 'CASC', 'MHI', 'CASC', 'CASC', 'CASC', 'ExPace', 'VKS RF', 'ISA', 'ULA', 'Roscosmos', 'Rocket Lab', 'CASC', 'CASC', 'ULA', 'SpaceX', 'Arianespace', 'Roscosmos', 'Roscosmos', 'VKS RF', 'CASC', 'SpaceX', 'i-Space', 'ISRO', 'Roscosmos', 'Roscosmos', 'Arianespace', 'VKS RF', 'Roscosmos', 'Exos', 'Rocket Lab', 'SpaceX', 'CASC', 'Arianespace', 'SpaceX', 'CASC', 'Roscosmos', 'Roscosmos', 'SpaceX', 'CASC', 'ISRO', 'CASC', 'Rocket Lab', 'SpaceX', 'Blue Origin', 'CASC', 'CASC', 'Northrop', 'SpaceX', 'Arianespace', 'Roscosmos', 'ISRO', 'CASC', 'Rocket Lab', 'OneSpace', 'Arianespace', 'ULA', 'Roscosmos', 'CASC', 'Exos', 'SpaceX', 'Arianespace', 'SpaceX', 'VKS RF', 'Arianespace', 'ISA', 'ISRO', 'Blue Origin', 'CASC', 'ULA', 'JAXA', 'ISA', 'SpaceX', 'CASC', 'CASC', 'Roscosmos', 'CASC', 'SpaceX', 'CASC', 'VKS RF', 'Arianespace', 'ISRO', 'Rocket Lab', 'CASC', 'CASC', 'SpaceX', 'Arianespace', 'SpaceX', 'Roscosmos', 'VKS RF', 'ISRO', 'Arianespace', 'CASC', 'CASC', 'Northrop', 'Roscosmos', 'SpaceX', 'ISRO', 'Rocket Lab', 'Arianespace', 'VKS RF', 'CASC', 'MHI', 'CASC', 'Landspace', 'Roscosmos', 'CASC', 'Arianespace', 'ULA', 'CASC', 'Roscosmos', 'CASC', 'SpaceX', 'ExPace', 'Arianespace', 'MHI', 'CASC', 'ISRO', 'ULA', 'SpaceX', 'CASC', 'Exos', 'CASC', 'Arianespace', 'ULA', 'SpaceX', 'CASC', 'CASC', 'SpaceX', 'Arianespace', 'SpaceX', 'Blue Origin', 'Roscosmos', 'CASC', 'CASC', 'SpaceX', 'CASC', 'VKS RF', 'MHI', 'Roscosmos', 'CASC', 'SpaceX', 'CASC', 'SpaceX', 'Northrop', 'CASC', 'SpaceX', 'CASC', 'ULA', 'CASC', 'Blue Origin', 'CASC', 'Eurockot', 'SpaceX', 'VKS RF', 'ULA', 'ISRO', 'CASC', 'Arianespace', 'SpaceX', 'CASC', 'SpaceX', 'CASC', 'Roscosmos', 'ISRO', 'Roscosmos', 'CASC', 'Arianespace', 'SpaceX', 'ULA', 'MHI', 'SpaceX', 'Roscosmos', 'CASC', 'SpaceX', 'JAXA', 'CASC', 'Roscosmos', 'SpaceX', 'Arianespace', 'CASC', 'Rocket Lab', 'ULA', 'CASC', 'JAXA', 'CASC', 'ULA', 'ISRO', 'CASC', 'CASC', 'SpaceX', 'Land Launch', 'CASC', 'CASC', 'SpaceX', 'MHI', 'Roscosmos', 'Blue Origin', 'SpaceX', 'Arianespace', 'CASC', 'CASC'], 'Outcome': ['Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Prelaunch Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success']}\ndf = pd.DataFrame(data)\n
\n","author":{"@type":"Person","name":"Trenton McKinney"},"upvoteCount":5}}}Reputation: 147
I am trying to create a stacked horizontal bar chart, which is created by the following code, however I want to order it in descending order of frequency. I have tried to add .sort_values() in the groupby line but it doesn't affect the graph.
Data provided at this google drive: https://drive.google.com/file/d/1PcfYsyD6T1_EHz3FZvdWN2DewzI64_zq/view?usp=sharing
df = pd.read_csv('data.csv')
Company Location DateTime Details Outcome
0 SpaceX LC-39A, Kennedy Space Center, Florida, USA Fri Aug 07, 2020 05:12 UTC Falcon 9 Block 5 | Starlink V1 L9 & BlackSky Success
1 CASC Site 9401 (SLS-2), Jiuquan Satellite Launch Center, China Thu Aug 06, 2020 04:01 UTC Long March 2D | Gaofen-9 04 & Q-SAT Success
2 SpaceX Pad A, Boca Chica, Texas, USA Tue Aug 04, 2020 23:57 UTC Starship Prototype | 150 Meter Hop Success
3 Roscosmos Site 200/39, Baikonur Cosmodrome, Kazakhstan Thu Jul 30, 2020 21:25 UTC Proton-M/Briz-M | Ekspress-80 & Ekspress-103 Success
4 ULA SLC-41, Cape Canaveral AFS, Florida, USA Thu Jul 30, 2020 11:50 UTC Atlas V 541 | Perseverance Success
#add a success column
values = ['Success']
conditions = list(map(df['Outcome'].str.contains, values))
df['outcome'] = np.select(conditions, values, 'Failure')
s = df.groupby(['Company','outcome']).size().sort_values()
s = s.unstack()
outcome Failure Success
Company
AEB 3.0 NaN
AMBA 4.0 4.0
ASI NaN 9.0
Arianespace 10.0 269.0
s.plot(
kind = 'barh', # Horizontal bars
stacked = True,
color = ['Red', 'Green'],
figsize = [15, 8],
)
plt.savefig('hbar.png')
Upvotes: 1
Views: 3751
Reputation: 62523
'Success'
and 'Failure'
for each company and then sort by the total.import pandas as pd
df = pd.read_csv('data.csv')
#add a success column
values = ['Success']
conditions = list(map(df['Outcome'].str.contains, values))
df['outcome'] = np.select(conditions, values, 'Failure')
s = df.groupby(['Company','outcome']).size().unstack()
# add the row wise sum for each company
s['total'] = s.sum(axis=1)
# sort
s.sort_values('total', inplace=True)
# plot
ax = s[['Failure', 'Success']].plot(kind='barh', stacked=True, color=['Red', 'Green'], figsize=[15, 8])
# set the xscale for better visibility of data
ax.set_xscale('log') # use 'symlog' if there are negative values
plt.savefig('hbar.png')
data = {'Company': ['SpaceX', 'CASC', 'SpaceX', 'Roscosmos', 'ULA', 'CASC', 'Roscosmos', 'CASC', 'SpaceX', 'JAXA', 'Northrop', 'ExPace', 'CASC', 'IAI', 'CASC', 'Rocket Lab', 'CASC', 'SpaceX', 'CASC', 'CASC', 'SpaceX', 'Rocket Lab', 'CASC', 'SpaceX', 'CASC', 'SpaceX', 'CASC', 'Virgin Orbit', 'VKS RF', 'MHI', 'ULA', 'ExPace', 'CASC', 'Roscosmos', 'SpaceX', 'IRGC', 'CASC', 'Roscosmos', 'ULA', 'CASC', 'Arianespace', 'SpaceX', 'VKS RF', 'CASC', 'CASC', 'SpaceX', 'VKS RF', 'CASC', 'Arianespace', 'SpaceX', 'Northrop', 'ULA', 'ISA', 'MHI', 'Arianespace', 'Rocket Lab', 'SpaceX', 'SpaceX', 'Arianespace', 'ExPace', 'CASC', 'CASC', 'SpaceX', 'CASC', 'VKS RF', 'Roscosmos', 'ULA', 'CASC', 'Arianespace', 'SpaceX', 'CASC', 'Blue Origin', 'ISRO', 'VKS RF', 'ExPace', 'ExPace', 'Roscosmos', 'Rocket Lab', 'SpaceX', 'CASC', 'ISRO', 'Arianespace', 'VKS RF', 'CASC', 'ExPace', 'CASC', 'ExPace', 'SpaceX', 'CASC', 'CASC', 'Northrop', 'Exos', 'CASC', 'Rocket Lab', 'Northrop', 'ILS', 'CASC', 'VKS RF', 'Roscosmos', 'CASC', 'MHI', 'CASC', 'CASC', 'CASC', 'ExPace', 'VKS RF', 'ISA', 'ULA', 'Roscosmos', 'Rocket Lab', 'CASC', 'CASC', 'ULA', 'SpaceX', 'Arianespace', 'Roscosmos', 'Roscosmos', 'VKS RF', 'CASC', 'SpaceX', 'i-Space', 'ISRO', 'Roscosmos', 'Roscosmos', 'Arianespace', 'VKS RF', 'Roscosmos', 'Exos', 'Rocket Lab', 'SpaceX', 'CASC', 'Arianespace', 'SpaceX', 'CASC', 'Roscosmos', 'Roscosmos', 'SpaceX', 'CASC', 'ISRO', 'CASC', 'Rocket Lab', 'SpaceX', 'Blue Origin', 'CASC', 'CASC', 'Northrop', 'SpaceX', 'Arianespace', 'Roscosmos', 'ISRO', 'CASC', 'Rocket Lab', 'OneSpace', 'Arianespace', 'ULA', 'Roscosmos', 'CASC', 'Exos', 'SpaceX', 'Arianespace', 'SpaceX', 'VKS RF', 'Arianespace', 'ISA', 'ISRO', 'Blue Origin', 'CASC', 'ULA', 'JAXA', 'ISA', 'SpaceX', 'CASC', 'CASC', 'Roscosmos', 'CASC', 'SpaceX', 'CASC', 'VKS RF', 'Arianespace', 'ISRO', 'Rocket Lab', 'CASC', 'CASC', 'SpaceX', 'Arianespace', 'SpaceX', 'Roscosmos', 'VKS RF', 'ISRO', 'Arianespace', 'CASC', 'CASC', 'Northrop', 'Roscosmos', 'SpaceX', 'ISRO', 'Rocket Lab', 'Arianespace', 'VKS RF', 'CASC', 'MHI', 'CASC', 'Landspace', 'Roscosmos', 'CASC', 'Arianespace', 'ULA', 'CASC', 'Roscosmos', 'CASC', 'SpaceX', 'ExPace', 'Arianespace', 'MHI', 'CASC', 'ISRO', 'ULA', 'SpaceX', 'CASC', 'Exos', 'CASC', 'Arianespace', 'ULA', 'SpaceX', 'CASC', 'CASC', 'SpaceX', 'Arianespace', 'SpaceX', 'Blue Origin', 'Roscosmos', 'CASC', 'CASC', 'SpaceX', 'CASC', 'VKS RF', 'MHI', 'Roscosmos', 'CASC', 'SpaceX', 'CASC', 'SpaceX', 'Northrop', 'CASC', 'SpaceX', 'CASC', 'ULA', 'CASC', 'Blue Origin', 'CASC', 'Eurockot', 'SpaceX', 'VKS RF', 'ULA', 'ISRO', 'CASC', 'Arianespace', 'SpaceX', 'CASC', 'SpaceX', 'CASC', 'Roscosmos', 'ISRO', 'Roscosmos', 'CASC', 'Arianespace', 'SpaceX', 'ULA', 'MHI', 'SpaceX', 'Roscosmos', 'CASC', 'SpaceX', 'JAXA', 'CASC', 'Roscosmos', 'SpaceX', 'Arianespace', 'CASC', 'Rocket Lab', 'ULA', 'CASC', 'JAXA', 'CASC', 'ULA', 'ISRO', 'CASC', 'CASC', 'SpaceX', 'Land Launch', 'CASC', 'CASC', 'SpaceX', 'MHI', 'Roscosmos', 'Blue Origin', 'SpaceX', 'Arianespace', 'CASC', 'CASC'], 'Outcome': ['Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Prelaunch Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Partial Failure', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success']}
df = pd.DataFrame(data)
Upvotes: 5