我对Python还比较陌生,遇到了一些麻烦。我有以下数据帧:
import pandas as pd
data = {'v1':('Belgium[country]', 'Antwerp[city]', 'Gent[city]', 'France[country]', 'Paris[city]', 'Marseille[city]', 'Toulouse[city]', 'Spain[country]', 'Madrid[city]')}
df = pd.DataFrame(data)
df
v1
0 Belgium[country]
1 Antwerp[city]
2 Gent[city]
3 France[country]
4 Paris[city]
5 Marseille[city]
6 Toulouse[city]
7 Spain[country]
8 Madrid[city]
我想将其映射为以下格式:
v1 v2
0 Belgium[country] Antwerp[city]
1 Belgium[country] Gent[city]
2 France[country] Paris[city]
3 France[country] Marseille[city]
4 France[country] Toulouse[city]
5 Spain[country] Madrid[city]
我找到了一种使用字典的方法,但是由于我想保持顺序,所以我正在寻找一种使用列表的方法。你知道吗
我尝试了基于索引和价值本身(特别是[国家]和[城市])的方法,但都失败了。非常感谢您的帮助!你知道吗
不含
groupby
的溶液:时间安排:
计时代码:
这将起作用:
这个想法是为每个新国家增加一个递增的计数器。然后您可以按此计数器分组以访问所需的信息。你知道吗
具体来说,第一步是只保留城市(
g[1:]
对于每个组g
)。然后重新命名和索引。最后,使用另一个groupby(给出国家)的结果替换v1
列中的值。你知道吗相关问题 更多 >
编程相关推荐