2017-06-21 12 views
0

まず、私は、.csvファイルからパンダのデータフレームを作成します。パンダのデータフレーム内の特定の列のn番目の行の値を置き換えるにはどうすればよいですか?

 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をやって:

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

第二に、私は生産print df1.head()を行います。

ここでiloc[[0]]の値をxに置き換えます。

print int(df1.x.iloc[[0]].values)はまだ88ではなく15424であるので、df1.x.iloc[[0]].values == 88という行はトリックを行いません。

パンダのデータフレーム内の特定の列のn番目の行の値を置き換えるにはどうすればよいですか?

+0

をするいくつかの方法があります。特定のセルに値を割り当てます。 https://stackoverflow.com/a/43968774/190597を参照してください。 – unutbu

答えて

1

重イコール(代入演算子)シングルサインequalsと(比較演算子)に署名交換してみてください:

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

サイドノートを:私のテストでは、行インデックスをラップする必要はありませんこの場合はリスト括弧内に0を追加し、新しい値を.valuesに割り当てる必要はありません。私はこれと上記の行と同じ結果を得る:

df1.x.iloc[0] = 88 

たぶんもっとパンダの経験を持つ誰かがして重量を量ることができ

Runnableをテストケース:。

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 
関連する問題