我是python和pandas的新手。我附上了熊猫数据帧的图片, 我需要知道如何从最后一列获取数据以及如何重命名最后一列。
答案 0 :(得分:6)
您可以使用:
vote
或者:
df = df.rename(columns = {df.columns[-1] : 'newname'})
似乎是解决方案:
df.columns = df.columns[:-1].tolist() + ['new_name']
有缺陷。因为在重命名pandas函数后会返回奇怪的错误。
对于从最后一列获取数据,可以使用按位置iloc
选择:
df.columns.values[-1] = 'newname'
重命名后:
s = df.iloc[:,-1]
样品:
s1 = df['newname']
print (s1)
df = pd.DataFrame({'R':[7,8,9],
'T':[1,3,5],
'E':[5,3,6],
('Z', 'a'):[7,4,3]})
print (df)
E T R (Z, a)
0 5 1 7 7
1 3 3 8 4
2 6 5 9 3
s = df.iloc[:,-1]
print (s)
0 7
1 4
2 3
Name: (Z, a), dtype: int64
df.columns = df.columns[:-1].tolist() + ['new_name']
print (df)
E T R new_name
0 5 1 7 7
1 3 3 8 4
2 6 5 9 3
df = df.rename(columns = {('Z', 'a') : 'newname'})
print (df)
E T R newname
0 5 1 7 7
1 3 3 8 4
2 6 5 9 3
s = df['newname']
print (s)
0 7
1 4
2 3
Name: newname, dtype: int64
答案 1 :(得分:1)
从最后一列获取数据
按照其他答案的建议,使用# rename columns
def rename(col):
if isinstance(col, tuple):
col = '_'.join(str(c) for c in col)
return col
df.columns = map(rename, df.columns)
检索最后一列只有在它确实是最后一列时才能正常工作。
但是,使用像{{1}}这样的绝对列位置并不是一个稳定的解决方案,即如果添加其他列,则代码将会中断。
稳定,通用的方法
首先,确保所有列名都是字符串:
{{1}}
重命名最后一列
最好为所有列提供类似的列名,不带括号 - 使代码更易读,数据集更易于使用:
{{1}}
这是由元组命名的所有列的直接转换:
{{1}}
答案 2 :(得分:1)
您可以删除最后一列并使用其他名称重新分配 这不是技术上重命名列。但是,我认为它很直观。
使用@ jezrael的设置
df = pd.DataFrame({'R':[7,8,9],
'T':[1,3,5],
'E':[5,3,6],
('Z', 'a'):[7,4,3]})
print(df)
R T E (Z, a)
0 7 1 5 7
1 8 3 3 4
2 9 5 6 3
如何获取最后一列?
您可以使用iloc
df.iloc[:, -1]
0 5
1 3
2 6
Name: c, dtype: int64
您可以在提取后重命名该列
df.iloc[:, -1].rename('newcolumn')
0 5
1 3
2 6
Name: newcolumn, dtype: int64
为了在数据框中重命名,您可以采用多种方式。继续我已经开始的主题,即获取列,然后重命名它:
选项1
首先删除iloc[:, :-1]
的最后一列
使用join
添加上面引用的重命名列
df.iloc[:, :-1].join(df.iloc[:, -1].rename('newcolumn'))
R T E newname
0 7 1 5 7
1 8 3 3 4
2 9 5 6 3
选项2
或者我们可以使用assign
将其放回并保存rename
df.iloc[:, :-1].assign(newname=df.iloc[:, -1])
R T E newname
0 7 1 5 7
1 8 3 3 4
2 9 5 6 3
答案 3 :(得分:0)
用于更改列名
columns=df.columns.values
columns[-1]="Column name"
用于从dataframe获取数据
您可以使用loc,iloc和ix方法。
loc用于使用label获取值 iloc用于使用索引获取值 ix可以使用索引和标签
来获取数据了解loc和iloc http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection
了解有关索引和选择数据的详情