创建 pandas 数据框中每列的逆并添加前缀

Alw*_*eft 6 python-3.x pandas

示例数据框:

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
Run Code Online (Sandbox Code Playgroud)

我想将每个现有列的逆添加到数据框中,并根据带有前缀的现有列名称来命名它们,例如inv_A是列的逆A,等等。

生成的数据框应如下所示:

df_inv = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6], "inv_A": [1/1, 1/2, 1/3], "inv_B": [1/4, 1/5, 1/6]})
Run Code Online (Sandbox Code Playgroud)

显然,有一些多余的方法,比如在循环中执行此操作,但应该存在更多Python式的方法来执行此操作,并且在搜索一段时间后我没有找到任何内容。我知道这很可能是重复的;如果是这样,请指出我现有的答案。

Ayo*_*ROU 5

尝试 :

inv_df = df.join(df.apply(lambda x: 1/x).add_prefix('inv_'))
Run Code Online (Sandbox Code Playgroud)

或者正如@Erfan建议的那样,您不需要使用 apply :

inv_df = df.join((1/df).add_prefix('inv_'))
Run Code Online (Sandbox Code Playgroud)

这给出:

inv_df = df.join((1/df).add_prefix('inv_'))
Run Code Online (Sandbox Code Playgroud)

  • 无需在这里申请: `df.join((1/df).add_prefix('inv_'))` (2认同)