我想遍历df ['Social Distancing Advisory']列,并使用.replace()将元素替换为其他元素,但是当我像这样进行设置时,似乎没有任何作用。
import pandas as pd
df = pd.read_excel('/Users/Arthur/Desktop/COVID-RA/state_data.xlsx')
for column in df['Social Distancing Advisory']:
if df['Social Distancing Advisory'] == 'sah':
df['Social Distancing Advisory'].replace('sah','1')
if df['Social Distancing Advisory'] == 'sip':
df['Social Distancing Advisory'].replace('sip','0')
df
ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
答案 0 :(得分:0)
您无需反复进行替换字符串。这是一个例子。
svn log -g branch-URL/path/to/x.y@98782
答案 1 :(得分:0)
之所以得到ValueError
,是因为df['Social Distancing Advisory'] == 'sah'
语句给出了一系列布尔值-True
用于那些值与'sah'
匹配的索引,否则为False
。这正是错误消息的内容。
以下代码可以通过提供pd.Series.replace
方法来解决问题,方法是提供所需更改的映射
import pandas as pd
df = pd.read_excel('/Users/Arthur/Desktop/COVID-RA/state_data.xlsx')
df['Social Distancing Advisory'] = df['Social Distancing Advisory'].replace({
"sah": "1",
"sip": "0"
})