2017-06-21 45 views
0

首先,我從.csv文件創建一個數據幀大熊貓:如何替換pandas數據框中給定列的第n行中的值?

df1 = pd.read_csv(infile1, sep=",", usecols=cols, header=0, names=["Timestamp","x"]) 

第二,我做print df1.head()產生:

 Timestamp  x 
0 1491894899989 15424 
1 1491894899984 15424 
2 1491894899979 15488 
3 1491894899974 15488 
4 1491894899969 15488 

然後,做print int(df1.x.iloc[[0]].values)產量15424

現在,我想替換xiloc[[0]]值。

該行df1.x.iloc[[0]].values == 88沒有辦法,因爲print int(df1.x.iloc[[0]].values)仍然產生15424而不是88

如何替換熊貓數據框中給定列的第n行中的值?

+0

有許多的方式來在特定的單元格中分配一個值。請參閱https://stackoverflow.com/a/43968774/190597。 – unutbu

回答

1

嘗試更換雙等號(比較運算)與單個等號(賦值運算符):

df1.x.iloc[[0]].values = 88 

邊注:在我的測試中,它是沒有必要換行索引0在這種情況下列表括號中,也沒有必要將新值分配給.values。我得到相同的結果與上面這行:

df1.x.iloc[0] = 88 

也許有人有更多大熊貓的經驗可以在權衡

可運行測試用例:

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'col1': ['asdf']*5}) 
df.col1.iloc[0] = 'jkl' 
df 
# output: 
#  col1 
# 0 jkl 
# 1 asdf 
# 2 asdf 
# 3 asdf 
# 4 asdf 
相關問題