我想创建一个名为Playercategory的新专栏,
Name Country
Kobe United States
John Italy
Charly Japan
Braven Japan / United States
Rocky Germany / United States
Bran Lithuania
Nick United States / Ukraine
Jonas Nigeria
如果玩家的国籍为“美国”或除欧洲国家外的任何其他国家的美国,则Playercategory==“美国”
如果玩家的国籍是欧洲国家或与任何其他国家的欧洲国家,则Playerclass=="欧洲"(例如:"意大利"、"意大利/美国"、"德国/美国"、"立陶宛/澳大利亚"、"比利时")
对于所有其他玩家,则Playercategory==“非”
预期输出:
Name Country Playercategory
Kobe United States American
John Italy Europe
Charles Japan Non
Braven Japan / United States American
Rocky Germany / United States Europe
Bran Lithuania Europe
Nick United States / Ukraine American
Jonas Nigeria Non
我的尝试:首先,我创建了一个欧洲国家的列表:
euroCountries=['Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'Czechia', 'Denmark',
'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland',
'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands',
'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden']
我知道如何检查一种情况,比如下面的方法,
df["PlayerCatagory"] = np.where(df["Country"].isin(euroCountries), "Europe", "Non")
但不知道如何结合上述三个条件,正确创建玩家类别。
非常感谢您的支持!!!!!!!
使用numpy。如果在
系列中匹配
:欧洲国家
,则选择先测试。str.包含
,然后测试是否匹配美国
m1 = df['Country'].str.contains('|'.join(euroCountries))
m2 = df['Country'].str.contains('United States')
或者您可以使用
:系列测试拆分的值。str.split
,数据帧。eq
或数据帧。isin
然后,如果数据帧中每行至少有一个匹配项。任何
df1 = df['Country'].str.split(' / ', expand=True)
m1 = df1.eq('United States').any(axis=1)
m2 = df1.isin(euroCountries).any(axis=1)
df["PlayerCatagory"] = np.select([m1, m2], ['Europe','American'], default='Non')
print (df)
Name Country PlayerCatagory
0 Kobe United States American
1 John Italy Europe
2 Charly Japan Non
3 Braven Japan / United States American
4 Rocky Germany / United States Europe
5 Bran Lithuania Europe
6 Nick United States / Ukraine American
7 Jonas Nigeria Non
基于dataframe列val_1值,查看其他列col_0-10标签前缀,然后创建另一列Mycl。 数据帧看起来像: 应用逻辑后所需的数据帧: 我是trid,但这不起作用:df['mycol']=df['col'df['val_1']。aType(str)] DDL生成DataFrame: 谢谢!
问题内容: 所以,这是我的数据框 我还有另一个清单: 如果x.Country位于欧洲,我想创建一个新列“ Continent” 问题答案: 或者您可以直接 使用
问题内容: 我有一个: 我可以过滤库存编号‘600809’如下的行: 我想将一些股票的所有行汇总在一起,例如[‘600809’,‘600141’,‘600329’]。这意味着我想要这样的语法: 由于大熊猫不接受上述命令,如何实现目标? 问题答案: 使用isin方法。 。
问题内容: 我已经看到了将一个列/系列分解为Pandas数据框的多个列的主题的几种变体,但是我一直在尝试做点事情,而实际上并没有成功地使用现有方法。 给定这样的一个DataFrame: 我想将系列中的项目转换为以值作为值的列,如下所示: 我觉得这应该是相对简单的事情,但是由于卷积水平的提高,我已经为此花了几个小时不停地努力,但没有成功。 问题答案: 有几种方法: 使用: 使用: 使用后跟:
我有一个Python pandas DataFrame: 我想把一些股票的所有行放在一起,比如。这意味着我想要这样的语法: 既然熊猫不接受上述命令,如何达到目标?
问题内容: 我有看起来像的数据框: 为了进一步处理数据,我需要拆分该列,然后将其替换为如下所示的多列: 因此,这些列可以追加到初始数据帧。我不知道该怎么做,因为像 不能解决我的问题,因为我不仅需要基于列表中位置的列,还需要基于列表中每个唯一值的列。您知道我该如何处理吗? 问题答案: 您可以使用和: 如果需要计数值,则可以使用(我添加一个字符串进行测试):