![](/img/trans.png)
[英]pandas - how to organised dataframe based on date and assign new values to column
[英]How to assign new column based on the list of string values in pandas
我有一个 dataframe,其中一列包含字符串值,如果此列值在我指定的列表中,我想分配新列。
my_list = ['AA', 'TR', 'NZ']
例如:我的dataframe:df
国家 |
---|
AA |
TR |
神光 |
我想要的 dataframe:
国家 | 旗帜 |
---|---|
AA | 1个 |
TR | 1个 |
神光 | 0 |
我试过这个,但我给出了一个值错误。
df.assign(flag = lambda df: '1' if df['country'].isin(my_list) else '0')
我应该怎么办? 谢谢
您可以使用astype(int)
直接将 boolean 转换为 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'))
output:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.