df = pd.DataFrame(np.arange(12, 24).reshape((3, 4)), index=["a", "b", "c"], columns=["WW", "XX", "YY", "ZZ"])
print(df)
WW XX YY ZZ
a 12 13 14 15
b 16 17 18 19
c 20 21 22 23
# 查看索引 (索引是可以重复的)
print(df.index) # Index(['a', 'b', 'c'], dtype='object')
# 修改索引
df.index = ["aa", "bb", "cc"] # []列表的长度必须与df行数一致。
print(df)
WW XX YY ZZ
aa 12 13 14 15
bb 16 17 18 19
cc 20 21 22 23
# 根据索引重新构建数据
df2 = df.reindex(["aa", "pp"]) # 索引存在就正常显示数据,不存在的索引其数据就是NaN
print(df2)
WW XX YY ZZ
aa 12.0 13.0 14.0 15.0
pp NaN NaN NaN NaN
# 将某列设置为索引
df3 = df.set_index("YY") # 将"YY"列设为索引(默认同时删除"YY"列的数据)
print(df3)
WW XX ZZ
14 12 13 15
18 16 17 19
22 20 21 23
df4 = df.set_index("YY", drop=False) # drop=False 表示保留原先"YY"列的数据。(默认为True)
print(df4)
WW XX YY ZZ
14 12 13 14 15
18 16 17 18 19
22 20 21 22 23
# unique()某列去重后的内容
print(df["ZZ"].unique()) # [15 19 23] ndarray类型
df.index = ["ll", "ll", "mm"] # 索引可以重复
# 去重后的索引
print(df.index.unique()) # Index(['ll', 'mm'], dtype='object')
# index索引有长度
print(len(df.index)) # 3
# index索引对象可以转换成列表类型
print(list(df.index)) # ['ll', 'll', 'mm']
demo.py(复合索引,通过复合索引取值):
# coding=utf-8
import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(12, 24).reshape((3, 4)), index=["a", "b", "c"], columns=["WW", "XX", "YY", "ZZ"])
print(df)
WW XX YY ZZ
a 12 13 14 15
b 16 17 18 19
c 20 21 22 23
# 复合索引 将多列设置为索引
df2 = df.set_index(["XX", "YY"]) # 如果只设置一列不需要[],如果设置多列需要[]
print(df2)
WW ZZ
XX YY
13 14 12 15
17 18 16 19
21 22 20 23
print(df2.index) # 复合索引
MultiIndex(levels=[[13, 17, 21], [14, 18, 22]],
codes=[[0, 1, 2], [0, 1, 2]],
names=['XX', 'YY'])
--levels表示去重后的索引
# Series类型的复合索引
s1 = df2["WW"] # Series类型 (只取了一列)。 df2[["WW"]]是DataFrame类型
print(s1) # Series类型
XX YY
13 14 12
17 18 16
21 22 20
Name: WW, dtype: int64
# 根据复合索引取值
print(s1[13][14]) # 12 索引可以重复,一个索引可能对应多个值(如果对应多个值返回Series类型)
print(s1[13, 14]) # 12 与上一句等同
print(s1[13]) # Series类型。 如果想通过"YY"索引取值,可以先swaplevel()交换索引次序再取值。
14 12
Name: WW, dtype: int64
# 通过复合索引修改
s1[13][14] = 55
print(s1)
XX YY
13 14 55
17 18 16
21 22 20
Name: WW, dtype: int64
# swaplevel()交换索引先后次序。
s2 = s1.swaplevel() # 将"YY"索引放前,"XX"索引放后
print(s2)
YY XX
14 13 12
18 17 16
22 21 20
Name: WW, dtype: int64
# DataFrame的复合索引
print(df2)
WW ZZ
XX YY
13 14 12 15
17 18 16 19
21 22 20 23
# DataFrame通过复合索引取值
print(df2.loc[13].loc[14]) # Series类型。 索引可以重复,可能对应多个值(DataFrame类型)
WW 12
ZZ 15
Name: 14, dtype: int64
print(df2.loc[13]) # DataFrame类型。 如果想通过"YY"索引取值,可以先swaplevel()交换索引次序再取值。
WW ZZ
14 12 15
# swaplevel()交换索引先后次序。
df3 = df2.swaplevel() # 将"YY"索引放前,"XX"索引放后
print(df3)
WW ZZ
YY XX
14 13 12 15
18 17 16 19
22 21 20 23
demo.py(index索引,修改索引,将DataFrame某列设为索引):# coding=utf-8import numpy as npimport pandas as pddf = pd.DataFrame(np.arange(12, 24).reshape((3, 4)), index=["a", "b", "c"], columns=["WW", "XX", "Y.
m_pred_survived.to_csv(clasified.csv,index=False)
以上这篇Python DataFrame 设置输出不显示index(索引)值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:Python将DataFrame的某一列作为index的方法pandas将DataFrame的列变成行索引的方法python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)Py
最近在网上搜了许多关于pandas.DataFrame的操作说明,都是一些基础的操作,但是这些操作组合起来还是比较费时间去正确操作DataFrame,花了我挺长时间去调整BUG的。我在这里做一些总结,方便你我他。感兴趣的朋友们一起来看看吧。
一、创建DataFrame的简单操作:
1、根据字典创造:
In [1]: import pandas as pd
In [3]: aa={'one':[1,2,3],'two':[2,3,4],'three':[3,4,5]}
In [4]: bb=pd.DataFrame(aa)
In [5]: bb
Out[5]:
one three tw
将数据某一列设为索引
将userid列设为索引列,inplace=True表示在原df上修改,drop=False表示保留userid列,默认删除userid列。
# 将userid列设为索引列
df.set_index('userid', inplace=True, drop=False)
# 若修改后可以这么查询u
文章目录pandas的dataFrame的索引值从1开始DataFrame中指定位置增加删除一行一列pandas中DataFrame修改index、columns名的方法
pandas的dataFrame的索引值从1开始
假设有一个dataFrame:
这里的index的索引列是从0开始的,那么现在我想要让它从1开始怎么做?
我搜了几篇文章,发现有的是:
df.index = range(len(df)) //这样的
data_df = pd.DataFrame({'a':a,},index=list(
import pandas as pd]
#df = pd.read_excel(r'D:\work01\pandas\app\data\team.xlsx',index_col='name') #加载的同时将name列设置成索引
#加载时未指定索引,可以用df.set_index()
df = pd.read_excel(r'D:\work01\pandas\app\data\team.xlsx')
#df.set_inde
今天小编就为大家分享一篇使用pandas把某一列的字符值转换为数字的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
使用map的方法就可以实现把某一列的字符类型的值转换为数字。
class_mapping = {'A':0, 'B':1}
data[class] = data[class].map(class_mapping)
首先定义一个字典,然后使用map方法就可以把某一列的字符类型的值转换为数字。
以上就是对使用pandas把某一列的字符值转换为数字的认识。
这篇使用pandas把某一列的字符值转换为数字的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,
DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
其中: keys是列标签或数组列表,drop:删除要用作新索引的列,布尔值默认为True,append:boolean是否将列附加到现有索引默认为False,inplace修改DataFrame(不要创建新对象)默认...
28_Pandas通过index选择并获取行和列
通过指定pandas.DataFrame和pandas.Series的index(下标),可以选择和获取行/列或元素的值。根据[]中指定的值的类型,可以获取的数据会有所不同。
将描述以下内容。
获取pandas.DataFrame的列
列名称:将单个列作为pandas.Series获得
列名称的列表:将单个或多个列作为pandas.DataFrame获得
获取pandas.DataFrame的行
行名・行号的切片:将单行或多行作为pandas.Da
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': ['a', 'b', 'c', 'd', 'e'],
'C': [0.1, 0.2, 0.3, 0.4, 0.5]})
# 输出第2到第4行的所有数据
print(df.iloc[1:4, :])
# 输出第2到第4行的A和C列数据
print(df.loc[1:3, ['A', 'C']])
A B C
1 2 b 0.2
2 3 c 0.3
3 4 d 0.4
A C
1 2 0.2
2 3 0.3
3 4 0.4
上面的代码中,使用了不同的索引方式。`.iloc`使用了整数位置索引,可以根据行列的位置进行切片。而`.loc`使用了标签索引,可以根据行列的标签进行切片。可以根据实际情况选择不同的索引方式来输出数据。