如何根据panda中的字符串值列表分配新列



我有一个数据帧,其中一列包含字符串值,如果该列值在我指定的列表中,我想分配新列。

my_list=[AA','TR','NZ']

例如:我的数据帧:df

国家
AA
tr
SG

您可以使用astype(int):直接将布尔值转换为0/1

df.assign(flag= df['country'].isin(my_list).astype(int))

或者对于字符串:

df.assign(flag= df['country'].isin(my_list).astype(int).astype(str))

或者,使用numpy.where:

import numpy as np
df.assign(flag=np.where(df['country'].isin(my_list), '1', '0'))

输出:

country flag
0      AA    1
1      TR    1
2      SG    0
import pandas as pd
my_list = ['AA', 'TR', 'NZ']
df = pd.DataFrame(columns=["Country", "Flag"])
df.loc[0] = ["AA", 0]
df.loc[1] = ["TR", 0]
df.loc[2] = ["SG", 0]
print(df)
for i in range(len(df)):
if df["Country"].iloc[i] in my_list:
df["Flag"].iloc[i] = 1
print(df)

最新更新