如何解决使用loc []方法将零连接到len== 1.0的每一行
我有一组数据,其中只有一列:
New_Value
0 51
1 45
2 1
3 78
4 0
5 78
csv文件不代表数字后的零。 10
变成1
,这表示我要执行的操作不准确。我想为具有一位数字的每一行添加零,而保留具有两位数字的行。我尝试了以下代码,但仍然出现此错误:AttributeError: 'str' object has no attribute 'str'
。
import pandas as pd
df = pd.read_csv('Hellow world')
for index in df.index:
if df.loc[index,'New_Value'].str.len()== 1.0:
df['New_Value']= data['New_Value'].str.cat(0)
else if df.loc[index,'New_Value'].str.len()== 2.0:
df.loc[index,'New_Value']
解决方法
尝试一下:
df['New_Value']=df.New_Value.apply(lambda x: str(x) + '0' if len(str(x))==1 else x)
如果您希望结果为整数,请执行以下操作:
df['New_Value']=df.New_Value.apply(lambda x: int(str(x) + '0') if len(str(x))==1 else x)
,
尝试一下:
import pandas as pd
df = pd.read_csv('Hellow world')
for index in df.index:
if len(list(df.loc[index,'New_Value'])) == 1.0:
df['New_Value']= data['New_Value].apply(lambda x: int(str(x) + '0'))
elif len(list(df.loc[index,'New_Value']))== 2.0:
df.loc[index,'New_Value']
,
解决方案:
这应该可以解决您的目的:
df['New_Value'] = df.New_Value.apply(lambda x: int(str(x) + '0') if len(str(x)) == 1 else x)
输出:
New_Value
0 51
1 10
2 20
3 45
4 20
5 24
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。