2015-06-19 91 views
2

我想根據索引和列更改Pandas DataFrame的值。我收到一個錯誤A value is trying to be set on a copy of a slice from a DataFrame。我搜索了四周,發現了類似的問題/答案,但沒有一個能夠應用。更改Pandas DataFrame數據點的值

import pandas as pd 

BabyDataSet = [('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)] 

df = pd.DataFrame(index=['a','b','c','d','e'], data=BabyDataSet, columns=['Names', 'Births']) 
df.ix['c']['Births'] = 10 
print df 
+0

我覺得你越來越指向你到這裏http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-警告與拷貝 –

回答

2

你的語法錯了,它應該是這樣的:

In [30]: 
df.ix['c','Births'] = 10 
df 

Out[30]: 
    Names Births 
a  Bob  968 
b Jessica  155 
c  Mary  10 
d  John  578 
e  Mel  973 

第一部分是索引標籤,第二個是列名。

你也可以做

In [32]: 
df.loc['c','Births'] = 10 
df 

Out[32]: 
    Names Births 
a  Bob  968 
b Jessica  155 
c  Mary  10 
d  John  578 
e  Mel  973