Python 向数据框添加单位
Python Add units to dataframe
我正在尝试向数据框添加单位,但无法绕过包含空白的行。这是我拥有的:
Index | Inch | mm | ft
______________________________
0 | | 4 | 7
______________________________
1 | 2 | | 8
______________________________
2 | 3 | 6 | 9
这是我尝试过的:
if numbers.find('\d') > -1:
return str(round_string_float(numbers))+' in'
但这不会使用正则表达式来查找数字。这是我想要得到的:
Index | Inch | mm | ft
______________________________________
0 | | 4 mm | 7 ft
______________________________________
1 | 2 in | | 8 ft
______________________________________
2 | 3 in | 6 mm | 9 ft
你可以这样做:
df['Inch'] = df['Inch'].fillna('').astype(str) + ' in'
添加“中”,然后:
df.loc[df['Inch'] == ' in', 'Inch'] = ''
去掉没有数字的行。
所有列依此类推。
使用 pandas.DataFrame.apply
和 Series.str.replace
的一种方法:
new_df = df.apply(lambda x: x.str.replace("(\d+)", "\1 %s" % x.name, regex=True))
print(new_df)
输出:
Inch mm ft
Index
0 4 mm 7 ft
1 2 Inch 8 ft
2 3 Inch 6 mm 9 ft
我正在尝试向数据框添加单位,但无法绕过包含空白的行。这是我拥有的:
Index | Inch | mm | ft
______________________________
0 | | 4 | 7
______________________________
1 | 2 | | 8
______________________________
2 | 3 | 6 | 9
这是我尝试过的:
if numbers.find('\d') > -1:
return str(round_string_float(numbers))+' in'
但这不会使用正则表达式来查找数字。这是我想要得到的:
Index | Inch | mm | ft
______________________________________
0 | | 4 mm | 7 ft
______________________________________
1 | 2 in | | 8 ft
______________________________________
2 | 3 in | 6 mm | 9 ft
你可以这样做:
df['Inch'] = df['Inch'].fillna('').astype(str) + ' in'
添加“中”,然后:
df.loc[df['Inch'] == ' in', 'Inch'] = ''
去掉没有数字的行。 所有列依此类推。
使用 pandas.DataFrame.apply
和 Series.str.replace
的一种方法:
new_df = df.apply(lambda x: x.str.replace("(\d+)", "\1 %s" % x.name, regex=True))
print(new_df)
输出:
Inch mm ft
Index
0 4 mm 7 ft
1 2 Inch 8 ft
2 3 Inch 6 mm 9 ft