重命名Pandas数据框索引
我正在用一个SQL语句填充一个数据框,这个语句给出的记录计数的索引值是从0开始的。我正在写一个与Snowflake表的比较,这个表我会导入到另一个数据框中。我想把每条记录的索引改成'SQL'加上当前的索引数字,而下一个数据框的索引则是'Snow'加上索引数字。当我有了这两个数据框后,我会把它们合并在一起,并重新设置索引,以便查看它们之间的差异。
SQL部分看起来是这样的:
import pyodbc as pyo
cnn_sql = (r'Driver={SQL Server};Server=dbserver;"Database=stuff;UID=Me;PWD=Password;')
cnn = pyo.connect(cnn_sql)
sql = 'Select * from table'
dfsql = pd.read_sql(sql, cnn)
print(dfsql)
cnn.close
结果是这样的:
Column1 Column2
0 Green apple
1 Red orange
我希望看到的是:
Column1 Column2
SQL0 Green apple
SQL1 Red orange
这样做可能吗,还是我方法不对?
我尝试过用 index.rename
,但出现了错误。
2 个回答
2
你可以这样做:
df.index = "SQL" + df.index.astype(str)
print(df)
输出结果是:
Column1 Column2
SQL0 Green apple
SQL1 Red orange
3
你可以使用rename
来重命名:
out = dfsql.rename(lambda x: f'SQL{x}')
# variant
out = dfsql.rename('SQL{}'.format)
或者可以直接修改索引,把它转换成字符串,并加上SQL前缀:
dfsql.index = 'SQL'+dfsql.index.astype(str)
输出结果:
Column1 Column2
SQL0 Green apple
SQL1 Red orange