Panda Dataframe 系列替换值
Panda Dataframe Series Replace value
我在Python中有一个程序:
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
# Read a CSV file:
name = pd.read_csv("users.csv", delimiter=";")
# Get the value of the row with index 0, column "Name"
name = users.iloc[0].get("Name")
# Supposedly replace the first user Name to np.NaN
users.iloc[0].replace(name , np.NaN, inplace=True)
我希望这会取代名称,但事实并非如此。
替换方式为:
Replace every name "name" with np.NaN ?
users.replace(name, np.NaN, inplace=True)
但是上一行不是要替换整个文件的名称吗?如何仅对行进行替换?
当您在 df.iloc[i]
上进行替换时,它不会保留回源数据帧。这是一个例子:
df = pd.DataFrame({'A': [1]})
Out[1]:
A 1
Name: 0, dtype: int64
替换似乎起作用。
df.iloc[0].replace(1, 5)
Out[2]:
A 5
Name: 0, dtype: int64
但它实际上并没有被发送回原始数据帧。
df
Out[3]:
A
0 1
您需要将替换语句的输出重新分配回数据框中的正确位置。像这样:
df.iloc[0] = df.iloc[0].replace(1, 5)
df
Out[57]:
A
0 5
我在Python中有一个程序:
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
# Read a CSV file:
name = pd.read_csv("users.csv", delimiter=";")
# Get the value of the row with index 0, column "Name"
name = users.iloc[0].get("Name")
# Supposedly replace the first user Name to np.NaN
users.iloc[0].replace(name , np.NaN, inplace=True)
我希望这会取代名称,但事实并非如此。 替换方式为:
Replace every name "name" with np.NaN ?
users.replace(name, np.NaN, inplace=True)
但是上一行不是要替换整个文件的名称吗?如何仅对行进行替换?
当您在 df.iloc[i]
上进行替换时,它不会保留回源数据帧。这是一个例子:
df = pd.DataFrame({'A': [1]})
Out[1]:
A 1
Name: 0, dtype: int64
替换似乎起作用。
df.iloc[0].replace(1, 5)
Out[2]:
A 5
Name: 0, dtype: int64
但它实际上并没有被发送回原始数据帧。
df
Out[3]:
A
0 1
您需要将替换语句的输出重新分配回数据框中的正确位置。像这样:
df.iloc[0] = df.iloc[0].replace(1, 5)
df
Out[57]:
A
0 5