python - 将python pandas数据框的行名提取为pandas系列
问题描述
是否可以将 python pandas 数据框的行名提取为 pandas 系列?谢谢!
# packages
import numpy as np
import pandas as pd
import statsmodels.api as sm
# the mt cars dataset
mtcars = sm.datasets.get_rdataset("mtcars", "datasets", cache=True).data
df = pd.DataFrame(mtcars)
df = df[1:5]
# DESIRED OUTCOCME - SOMETHING THAT LOOKS LIKE 'desired_series'
row_names = np.array(['Mazda RX4 Wag','Datsun 710','Hornet 4 Drive','Hornet Sportabout'])
desired_series = pd.Series(row_names)
print(desired_series)
0 Mazda RX4 Wag
1 Datsun 710
2 Hornet 4 Drive
3 Hornet Sportabout
dtype: object)
解决方案
将索引值传递给Series
构造函数:
s = pd.Series(df.index)
print (s)
0 Mazda RX4 Wag
1 Datsun 710
2 Hornet 4 Drive
3 Hornet Sportabout
dtype: object
或者如果使用Index.to_series
s 必须通过Series.reset_index
with drop=True
for default创建默认索引RangeIndex
,因为默认情况下索引和值是相同的:
print (df.index.to_series())
Mazda RX4 Wag Mazda RX4 Wag
Datsun 710 Datsun 710
Hornet 4 Drive Hornet 4 Drive
Hornet Sportabout Hornet Sportabout
dtype: object
s = df.index.to_series().reset_index(drop=True)
0 Mazda RX4 Wag
1 Datsun 710
2 Hornet 4 Drive
3 Hornet Sportabout
dtype: object
另一个想法是通过长度传递index
参数:np.arange
DataFrame
s = df.index.to_series(index=np.arange(len(df)))
print (s)
0 Mazda RX4 Wag
1 Datsun 710
2 Hornet 4 Drive
3 Hornet Sportabout
dtype: object
推荐阅读
- ruby - 获取标题标签后的内容(Ruby)
- c++ - 唯一命名对象表
- r - 润滑以 0 开头的日期的日期解析
- command-line - 如何在 cmd 中定向到我的 .cmd 所在的文件夹
- javascript - Angular 6:内部属性绑定 [innerHtml]
- bash - Bash - 如何将标准错误重定向到管道中下一个命令的标准输出?
- string - 检查文件内容是否为空的快速方法是什么?
- scala - 升级 Scala、Play 和 SBT 的问题
- angular - Angular:- 不显示和隐藏错误消息
- javascript - 为什么这个简单的 Javascript 代码没有在我的网站上运行?