Reputation: 8530
Is there a single method to take the list of the Series from a DataFrame?
For example, this way gets the result I want, but I have a sense there's a single method to get this:
In [136]: df=pd.DataFrame(pd.np.random.rand(10,3), columns=list('abc'))
Out[136]:
a b c
0 0.729100 0.102947 0.589687
1 0.180960 0.514507 0.359253
2 0.003143 0.353437 0.377803
3 0.565025 0.983447 0.380672
4 0.289800 0.256467 0.559850
5 0.177332 0.049220 0.467654
6 0.863002 0.325522 0.308502
7 0.926534 0.327017 0.159471
8 0.688663 0.934143 0.762619
9 0.203271 0.862646 0.317251
In [138]: [item[1] for item in df.items()]
Out[138]:
[0 0.052074
1 0.650355
2 0.011106
3 0.499441
4 0.874509
5 0.429968
6 0.869368
7 0.719732
8 0.441703
9 0.653455
Name: a, dtype: float64, 0 0.431164
1 0.736769
2 0.235221
3 0.452332
4 0.578849
5 0.116561
6 0.679606
7 0.549857
8 0.761222
9 0.468103
Name: b, dtype: float64, 0 0.850285
1 0.298383
2 0.511760
3 0.485509
4 0.587351
5 0.332112
6 0.230234
7 0.520007
8 0.127432
9 0.692219
Name: c, dtype: float64]
df.values()
would be the matching method to df.items()
, but the .values
gets the numpy values.
Upvotes: 14
Views: 6077
Reputation: 39
As far as I know, pandas can't give you a list
of series, but a dict
. If you just need an Iterable,
you can just get it with .values()
. If you need a list, you have to convert it with list
:
list(df.to_dict(orient='series').values())
Upvotes: 0
Reputation: 81
Another way:
columns, columnSeries = zip(*df.iteritems())
and to get rows as Series:
indices, rowSeries = zip(*df.iterrows())
Upvotes: 8
Reputation: 1580
This will return a list of series.
import pandas as pd
df = pd.DataFrame(pd.np.random.rand(10,3), columns=list('abc'))
# get a list of Series from the column names
series_list = [df[col] for col in df]
print(series_list)
Prints
[0 0.743692
1 0.364492
2 0.133023
3 0.861350
4 0.108383
5 0.058208
6 0.932846
7 0.462293
8 0.305808
9 0.045466
Name: a, dtype: float64, 0 0.783904
1 0.479855
2 0.407343
3 0.764235
4 0.422370
5 0.076351
6 0.237434
7 0.251543
8 0.600384
9 0.458412
Name: b, dtype: float64, 0 0.918281
1 0.995960
2 0.329548
3 0.036124
4 0.791106
5 0.420298
6 0.068579
7 0.611581
8 0.173925
9 0.652559
Name: c, dtype: float64]
Upvotes: 10