dtoolkit.accessor.dataframe.to_series#

dtoolkit.accessor.dataframe.to_series(df: DataFrame, /, name: Hashable = None, index_column: Hashable = None, value_column: Hashable = None) Series | DataFrame[source]#

Convert DataFrame to Series.

Parameters:
nameHashable, optional

The new name of returned Series. If not set, would use the original name.

index_columnHashable, optional

The Series’s index.

value_columnHashable, optional

The Series’s value.

Returns:
Series or DataFrame

Series if df is one column DataFrame or value_column is set.

Raises:
ValueError
  • If index_column is same to value_column.

  • If index_column is not in the columns.

  • If value_column is not in the columns.

Examples

>>> import dtoolkit
>>> import pandas as pd

Convert one column DataFrame to Series.

>>> df = pd.DataFrame(range(3))
>>> df
   0
0  0
1  1
2  2
>>> df.to_series(name="new name")
0    0
1    1
2    2
Name: new name, dtype: int64

Can’t directly convert two or more columns DataFrame

>>> df = pd.DataFrame({"a": range(3), "b": range(3, 6), "c": range(6, 9)})
>>> df
   a  b  c
0  0  3  6
1  1  4  7
2  2  5  8
>>> df.to_series()
   a  b  c
0  0  3  6
1  1  4  7
2  2  5  8

Convert to Series via value_column. A sugar syntax for df.get(value_column).

>>> df.to_series(value_column="a")
0  0
1  1
2  2
Name: a, dtype: int64

Convert to Series via index_column and value_column. A sugar syntax for df.set_index(index_column).get(value_column).

>>> df.to_series(index_column="b", value_column="c")
b
3    6
4    7
5    8
Name: c, dtype: int64