如果列“ A”的行有一个(字符串)假定我已有一个csv,如何替换列“ B”中的行的值。就像Dog
在行中一样,将其更改为B列中的相邻行
我正在寻找这样的东西:
for i in df['A']:
if i =='Dog','Cat':
//replace value Black in column B to White
示例:
原始CSV
A,B
Dog,Black
Cat,Black
Mouse,Black
Pig,Black
替换为:
A,B
Dog,White
Cat,White
Mouse,Black
Pig,Black
这是我的代码,csv中什么也没有显示,我不知道为什么
import pandas as pd
import csv
df = pd.read_csv("test.csv")
data = { 'A': [ 'Dog', 'Cat', 'Pig'] }
df = pd.DataFrame(data)
class Description(dict):
def __missing__(self, key):
return ''
desc = Description()
desc['Dog'] = 'White'
desc['Cat'] = 'White'
desc['Pig'] = 'White'
df['B'] = df['A'].apply(lambda x: desc[x])
答案 0 :(得分:0)
定义一个UDF,只需在A
列中应用该函数。
def surnamemap(x):
if x =="dog":
return 'Black'
elif x == "cat":
return 'White'
df['B'] = df['A'].apply(lambda x: surnamemap[x])
这应该有所帮助。
答案 1 :(得分:0)
这将起作用:
import pandas as pd
df = pd.DataFrame([["Dog","Black"], ["Cat","White"]], columns=['A', 'B'])
df.loc[df['A'] == "Dog", 'B'] = ["White"]
答案 2 :(得分:0)
IIUC:
df.loc[df['A'].isin(["Dog","Cat"]), 'B'] = "White"
然后保存:
df.to_csv('test.csv')
OR:
df.to_csv('test.csv',index=False)
看看你喜欢什么