我有一个DataFrame,它有一个列,如下所示:
Japan
valA
valB
Ghana
valC
valD
...
我想从这个列表中提取国家名称,并将它们转换成另一个列,如下所示:
Japan valA
Japan valB
Ghana valC
Ghana valD
我确信这个问题已经有答案了,但是我还没有找到正确的关键字来显示它
现在,我正在执行以下操作,但随后必须删除最初包含国家/地区名称的行:
def get_country(row):
if #decide if it's a country name:
return row[0]
df['country'] = df.apply(get_country, axis=1).fillna(method='ffill')
在清理数据时,这似乎是一个相当常见的用例,有没有标准的/更好的方法
使用提取物
我可以让你开始使用
map
和ffill
您可以使用^{} (或类似的东西)这样的包来验证国家名称
不过,通过这个定义,您可以将代码简化为
完全摆脱
is_country
功能这里有一种使用
groupby
+pd.concat
的方法。您可以显式定义countries
,也可以使用您喜爱的源代码相关问题 更多 >
编程相关推荐