python – Get list from pandas dataframe column or row?
python – Get list from pandas dataframe column or row?
Pandas DataFrame columns are Pandas Series when you pull them out, which you can then call x.tolist()
on to turn them into a Python list. Alternatively you cast it with list(x)
.
import pandas as pd
data_dict = {one: pd.Series([1, 2, 3], index=[a, b, c]),
two: pd.Series([1, 2, 3, 4], index=[a, b, c, d])}
df = pd.DataFrame(data_dict)
print(fDataFrame:n{df}n)
print(fcolumn types:n{df.dtypes})
col_one_list = df[one].tolist()
col_one_arr = df[one].to_numpy()
print(fncol_one_list:n{col_one_list}ntype:{type(col_one_list)})
print(fncol_one_arr:n{col_one_arr}ntype:{type(col_one_arr)})
Output:
DataFrame:
one two
a 1.0 1
b 2.0 2
c 3.0 3
d NaN 4
column types:
one float64
two int64
dtype: object
col_one_list:
[1.0, 2.0, 3.0, nan]
type:<class list>
col_one_arr:
[ 1. 2. 3. nan]
type:<class numpy.ndarray>
This returns a numpy array:
arr = df[cluster].to_numpy()
This returns a numpy array of unique values:
unique_arr = df[cluster].unique()
You can also use numpy to get the unique values, although there are differences between the two methods:
arr = df[cluster].to_numpy()
unique_arr = np.unique(arr)
python – Get list from pandas dataframe column or row?
Example conversion:
Numpy Array -> Panda Data Frame -> List from one Panda Column
Numpy Array
data = np.array([[10,20,30], [20,30,60], [30,60,90]])
Convert numpy array into Panda data frame
dataPd = pd.DataFrame(data = data)
print(dataPd)
0 1 2
0 10 20 30
1 20 30 60
2 30 60 90
Convert one Panda column to list
pdToList = list(dataPd[2])