Reputation: 8649
Lets say I have data loaded from an spreadsheet:
df = pd.read_csv('KDRAT_2012.csv', index_col=0, encoding = "ISO-8859-1",)
0 1 2 3 4 5 6 7 8 9
0 -5.53 -6.69 -6.29 -5.76 -7.74 -7.66 -6.27 -4.13 -3.08 0.00
1 -5.52 -6.68 -6.28 -5.75 -7.73 -7.65 -6.26 -4.12 -3.07 0.01
2 -4.03 -5.19 -4.79 -4.26 -6.24 -6.16 -4.77 -2.63 -1.58 1.50
3 0.11 -1.05 -0.65 -0.12 -2.10 -2.02 -0.63 1.51 2.56 5.64
4 0.23 -0.93 -0.53 0.00 -1.98 -1.90 -0.51 1.63 2.68 5.76
5 -2.53 -3.69 -3.29 -2.76 -4.74 -4.66 -3.27 -1.13 -0.08 3.00
[6 rows x 10 columns]
and I have a the names in another dataframe for the rows and the columns for example
colnames = pd.DataFrame({'Names': ['A', 'B', 'C', 'D', 'E', 'F'],
'foo': [0, 1, 0, 0, 0, 0]})
Is there a way I can set the values in colnames['Names'].value
as the index for df? and is there a way to do this for column names?
Upvotes: 0
Views: 3664
Reputation: 86128
How about df.index = colnames['Names']
for example:
In [77]: df = pd.DataFrame(np.arange(18).reshape(6,3))
In [78]: colnames = pd.DataFrame({'Names': ['A', 'B', 'C', 'D', 'E', 'F'],
'foo': [0, 1, 0, 0, 0, 0]})
In [79]: df.index = colnames['Names']
In [80]: df
Out[80]:
0 1 2
Names
A 0 1 2
B 3 4 5
C 6 7 8
D 9 10 11
E 12 13 14
F 15 16 17
[6 rows x 3 columns]
Upvotes: 2