Pandas:根据另一列的映射值创建新列

Ale*_*kis 4 python dataframe python-3.x pandas

我想根据 Python 中另一列的条件创建一个新列。更具体地说,我在数据框中的一列是:

Kilos:
1. 8.0
2. 16.0
3. 12.0
4. 10.0
5. 5.0
...
Run Code Online (Sandbox Code Playgroud)

我希望新列基于此列,每次您找到kilos公斤为 8.0 的行(在列中),那么新列的行将写入“X2 + 部分”,当列为 16.0 时,该行将写入新专栏将写“X8 + parts”,对于我不关心的其他专栏。它们可以是空白或其他任何内容。

S3D*_*DEV 5

在下面的示例中,您将创建一个值映射字典 ( valmap),它将用于将您的8.016.0值映射到您需要的文本。

示例代码:

import pandas as pd

# Create dataset.
data = {'Kilos': [8.0, 16.0, 12.0, 10.0, 5.0]}
df = pd.DataFrame(data)

# Create a value map dict for mapping specific values.
valmap = {8.0: 'X2 + parts', 16.0: 'X8 + parts'}
# Apply the value map into a new column.
df['Text'] = df['Kilos'].map(valmap)

# Show the results.
print(df)
Run Code Online (Sandbox Code Playgroud)

输出:

   Kilos        Text
0    8.0  X2 + parts
1   16.0  X8 + parts
2   12.0         NaN
3   10.0         NaN
4    5.0         NaN
Run Code Online (Sandbox Code Playgroud)

希望这有助于为您指明正确的方向。