Python 基于另一列中字符串的特定字符创建新的dataframe列

Python 基于另一列中字符串的特定字符创建新的dataframe列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含字符串的列的数据帧。我想知道是否可以基于dataframe创建一个新列。 这是列的一个示例: col1 016e3d588c 071b4x718g 011e3d598c 041e0i608g 我想根据字符串的最后一个字符创建一个新列。这就是我所尝试的: for i in DF['col1']: if i[-1] == 'g': DF['col2'] = 1 else: DF['col2'] = 0 我想要这样的新专栏: col

我有一个包含字符串的列的数据帧。我想知道是否可以基于dataframe创建一个新列。 这是列的一个示例:

   col1
016e3d588c
071b4x718g
011e3d598c
041e0i608g
我想根据字符串的最后一个字符创建一个新列。这就是我所尝试的:

for i in DF['col1']:
    if i[-1] == 'g':
        DF['col2'] = 1
    else:
        DF['col2'] = 0
我想要这样的新专栏:

col2
  0
  1
  0
  1
但我的代码有以下输出:

col2
  0
  0
  0
  0
有可能吗

使用
str.endswith()

Ex:

df = pd.DataFrame({"Col1": ['016e3d588c', '071b4x718g', '011e3d598c', '041e0i608g']})
df["Col2"] = df["Col1"].str.endswith("g").astype(int)
print(df)
         Col1  Col2
0  016e3d588c     0
1  071b4x718g     1
2  011e3d598c     0
3  041e0i608g     1
输出:

df = pd.DataFrame({"Col1": ['016e3d588c', '071b4x718g', '011e3d598c', '041e0i608g']})
df["Col2"] = df["Col1"].str.endswith("g").astype(int)
print(df)
         Col1  Col2
0  016e3d588c     0
1  071b4x718g     1
2  011e3d598c     0
3  041e0i608g     1
使用
str.endswith()

Ex:

df = pd.DataFrame({"Col1": ['016e3d588c', '071b4x718g', '011e3d598c', '041e0i608g']})
df["Col2"] = df["Col1"].str.endswith("g").astype(int)
print(df)
         Col1  Col2
0  016e3d588c     0
1  071b4x718g     1
2  011e3d598c     0
3  041e0i608g     1
输出:

df = pd.DataFrame({"Col1": ['016e3d588c', '071b4x718g', '011e3d598c', '041e0i608g']})
df["Col2"] = df["Col1"].str.endswith("g").astype(int)
print(df)
         Col1  Col2
0  016e3d588c     0
1  071b4x718g     1
2  011e3d598c     0
3  041e0i608g     1

您可以使用
numpy
尝试此操作

import numpy as np

DF["col2"] = np.where(DF["col1"].str[-1]=="g",1,0)

您可以使用
numpy
尝试此操作

import numpy as np

DF["col2"] = np.where(DF["col1"].str[-1]=="g",1,0)