Sow*_*owD 5 python python-3.x pandas
我是python和pandas的新手。我附上了熊猫数据框的图片,
我需要知道如何从最后一列中获取数据以及如何重命名最后一列。
您可以使用:
df = df.rename(columns = {df.columns[-1] : 'newname'})
Run Code Online (Sandbox Code Playgroud)
要么:
df.columns = df.columns[:-1].tolist() + ['new_name']
Run Code Online (Sandbox Code Playgroud)
看来解决方法:
df.columns.values[-1] = 'newname'
Run Code Online (Sandbox Code Playgroud)
越野车。因为重命名熊猫函数后会返回奇怪的错误。
要从最后一列获取数据,可以使用按位置选择iloc:
s = df.iloc[:,-1]
Run Code Online (Sandbox Code Playgroud)
并重命名后:
s1 = df['newname']
print (s1)
Run Code Online (Sandbox Code Playgroud)
样品:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
s = df['newname']
print (s)
0 7
1 4
2 3
Name: newname, dtype: int64
Run Code Online (Sandbox Code Playgroud)
df.columns.values[-1] = 'newname'
s = df['newname']
print (s)
>KeyError: 'newname'
Run Code Online (Sandbox Code Playgroud)
\n\n从最后一列获取数据
\n
仅当它确实是最后一列时,按照其他答案的建议检索df.iloc[:,-1]最后一列才可以正常工作。
但是,使用绝对列位置-1并不是一个稳定的解决方案,即如果您添加其他列,您的代码将会崩溃。
稳定、通用的方法
\n首先,确保所有列名称都是字符串:
\n# rename columns\ndf.columns = [str(s) for s in df.columns]\n#\xc2\xa0access column by name\ndf['(vehicle_id, reservation_count)']\nRun Code Online (Sandbox Code Playgroud)\n\n\n重命名最后一列
\n
最好为所有列使用相似的列名称,其中不带括号 - 使您的代码更具可读性并且数据集更易于使用:
\n# access column by name\ndf['vehicle_id_reservation_count`]\nRun Code Online (Sandbox Code Playgroud)\n这是对由元组命名的所有列的直接转换:
\n# rename columns\ndef rename(col):\n if isinstance(col, tuple):\n col = '_'.join(str(c) for c in col)\n return col\ndf.columns = map(rename, df.columns)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3605 次 |
| 最近记录: |