Reputation: 1265
I have output file like this from a pandas function.
Series([], name: column, dtype: object)
311 race
317 gender
Name: column, dtype: object
I'm trying to get an output with just the second column, i.e.,
race
gender
by deleting top and bottom rows, first column. How do I do that?
Upvotes: 58
Views: 101975
Reputation: 59549
DataFrame
/Series.to_string
These methods have a variety of arguments that allow you configure what, and how, information is displayed when you print. By default Series.to_string
has name=False
and dtype=False
, so we additionally specify index=False
:
s = pd.Series(['race', 'gender'], index=[311, 317])
print(s.to_string(index=False))
# race
# gender
If the Index is important the default is index=True
:
print(s.to_string())
#311 race
#317 gender
Series.str.cat
When you don't care about the index and just want the values left justified cat with a '\n'
. Values need to be strings, so convert first if necessary.
#s = s.astype(str)
print(s.str.cat(sep='\n'))
#race
#gender
Upvotes: 51
Reputation: 458
Sometimes I do print(*s, sep='\n')
:
s = pd.Series(['race', 'gender'], index=[311, 317])
print(*s, sep='\n')
gives
race
gender
Upvotes: 4
Reputation: 394099
You want just the .values
attribute:
In [159]:
s = pd.Series(['race','gender'],index=[311,317])
s
Out[159]:
311 race
317 gender
dtype: object
In [162]:
s.values
Out[162]:
array(['race', 'gender'], dtype=object)
You can convert to a list or access each value:
In [163]:
list(s)
Out[163]:
['race', 'gender']
In [164]:
for val in s:
print(val)
race
gender
Upvotes: 32