Hello so i have two columns that im using describe() and im getting their stats. I have something like this
x=pd.Series([1,3,4,6,7]) y=pd.Series([75,324,234,42]) desk1=x.describe() desk2=y.describe()
I want to print desk1 and desk2 below of each category.I am doing this:
print("desk1 stats",end="tt")
print("desk1 stats")
print(desk1,end="tt")
print(desk2)
I get this :
desk1 stats desk1 stats count 5.000000 mean 4.200000 std 2.387467 min 1.000000 25% 3.000000 50% 4.000000 75% 6.000000 max 7.000000 dtype: float64 count 4.000000 mean 168.750000 std 133.185022 min 42.000000 25% 66.750000 50% 154.500000 75% 256.500000 max 324.000000 dtype: float64
And i my desired output is this:
desk1 stats desk1 stats count 5.000000 count 4.000000 mean 4.200000 mean 168.750000 std 2.387467 std 133.185022 min 1.000000 min 42.000000 25% 3.000000 25% 66.750000 50% 4.000000 50% 154.500000 75% 6.000000 75% 256.500000 max 7.000000 max 324.000000 dtype: float64 dtype: float64
I would like to not create a dataframe.Any solutions? Thanks in advance
Advertisement
Answer
What about using:
print(pd.concat([desk1, desk2],
keys=['desk1 description', 'desk2 description'],
axis=1))
output:
desk1 description desk2 description count 5.000000 4.000000 mean 4.200000 168.750000 std 2.387467 133.185022 min 1.000000 42.000000 25% 3.000000 66.750000 50% 4.000000 154.500000 75% 6.000000 256.500000 max 7.000000 324.000000
For a more pure python solution:
desks = [desk1, desk2]
print('n'.join(map(' '.join, zip(*(d.to_string().split('n')
for d in desks)))))
output:
count 5.000000 count 4.000000 mean 4.200000 mean 168.750000 std 2.387467 std 133.185022 min 1.000000 min 42.000000 25% 3.000000 25% 66.750000 50% 4.000000 50% 154.500000 75% 6.000000 75% 256.500000 max 7.000000 max 324.000000
intermediates of second solution:
[d.to_string().split('n') for d in desks]
[['count 5.000000', 'mean 4.200000', 'std 2.387467', 'min 1.000000', '25% 3.000000', '50% 4.000000', '75% 6.000000', 'max 7.000000'],
['count 4.000000', 'mean 168.750000', 'std 133.185022', 'min 42.000000', '25% 66.750000', '50% 154.500000', '75% 256.500000', 'max 324.000000']]
list(zip(*(d.to_string().split('n') for d in desks)))
[('count 5.000000', 'count 4.000000'),
('mean 4.200000', 'mean 168.750000'),
('std 2.387467', 'std 133.185022'),
('min 1.000000', 'min 42.000000'),
('25% 3.000000', '25% 66.750000'),
('50% 4.000000', '50% 154.500000'),
('75% 6.000000', '75% 256.500000'),
('max 7.000000', 'max 324.000000')]
list(map(' '.join, zip(*(d.to_string().split('n') for d in desks))))
['count 5.000000 count 4.000000',
'mean 4.200000 mean 168.750000',
'std 2.387467 std 133.185022',
'min 1.000000 min 42.000000',
'25% 3.000000 25% 66.750000',
'50% 4.000000 50% 154.500000',
'75% 6.000000 75% 256.500000',
'max 7.000000 max 324.000000']