我正在研究一个问题集,其中 Pandas 数据框中有很多列,并且其中许多列都有尾随空格。我的问题是,有没有更好的方法来删除这些空格,而不是创建一个动态字符串(我们将列名作为变量传递并附加 astrip()
到它),然后对每个列执行它。
我有一个dataframe df1
,需要'h[mm]'
附加一个新列。'h[mm]'
应该df2
根据df1
的'Profile'
列中的值来查找新值。可以将这种情况与Excel的“ vlookup”或“ index / match”进行比较。
我已成功将'h[mm]'
具有正确值的新列添加到df1
。但是,它更改了原始顺序,对于df1
我而言,这是不希望的。
该dataframes的简化重复性版本df1
和df2
有:
pile_type = ['P01', 'P20', 'P05', 'P23', 'P04', 'P01']
profile = ['HE200A', 'HE220A', 'HE240B', 'NaN', 'HE200A', 'HE300B']
df1 = pd.DataFrame({'Pile_type': pile_type, 'Profile': profile})
profile_database = ['HE200A', 'HE220A', 'HE240B', 'HE500B', 'HE300B']
profile_height_database = [190, 210, 240, 500, 300]
df2 = pd.DataFrame({'Profile': profile_database, 'h[mm]': profile_height_database})
Run Code Online (Sandbox Code Playgroud)
我最接近的解决方案是使用pd.merge_ordered()
:
df_mo= pd.merge_ordered(df1, df2, left_by='Profile')
Run Code Online (Sandbox Code Playgroud)
仍然不会保留原来的顺序df1 …