我试图操纵我的数据帧,但是,我搜索了一段时间,没有找到答案。如果这个问题重复,我真诚地向你道歉
我有这样一个数据帧(df):
import pandas as pd
data = {'A': ['Emo/3', 'Emo/4', 'Emo/1', '', 'Neu/5', 'Neu/2'],
'Height': [5.1, 6.2, 5.1,'', 5.2, 5.2],
}
df = pd.DataFrame(data)
df
A Height
0 Emo/3 5.1
1 Emo/4 6.2
2 Emo/1 5.1
3
4 Neu/5 5.2
5 Neu/2 5.2
我想添加另一列“B”,以便“B”的值基于列“A”。如果a列中的一行包含某个字符串,则B列中的同一行将是一个数字:例如,如果a列中的“Emo/”,则B列为0。如果列中的行为空,则同一行中的colmn B也为空。输出应如下所示:
A Height B
0 Emo/3 5.1 0
1 Emo/4 6.2 0
2 Emo/1 5.1 0
3
4 Neu/5 5.2 1
5 Neu/2 5.2 1
目前,我有下面的代码,但它给了我一条错误消息:“TypeError:类型为'float'的参数不可iterable”
df["B"]=""
for index, row in df.iterrows:
if "Emo/" in row["A"]:
row["B"]=0
elif "Neu/" in row['A']:
row['B']=1
elif row['A']=="":
row['B']=""
任何建议都有帮助!谢谢
如zlipp所述,方法调用中缺少括号:
但是,请注意^{} should be avoided whenever possible 。
我建议使用^{} 。使用^{} (或^{} )构建条件并设置
default=''
:相关问题 更多 >
编程相关推荐