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.applySeries.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