我正在和熊猫一起工作,有一个csv文件,看起来像这样
ID Name Store Price
Melbourne
1 aaaa bbbb 570
2 cccc dddd 236
3 eeee ffff 230
Sydney
1 hhhh gggg 2300
2 kkkk llll 266
我想要这个形状的
City ID Name Store Price
Melbourne 1 aaaa bbbb 570
Melbourne 2 cccc dddd 236
Melbourne 3 eeee ffff 230
Sydney 1 hhhh gggg 23
Sydney 2 kkkk llll 266
我想的是
1添加新列
ID New Name Store Price
Melbourne NaN
1 NaN aaaa bbbb 570
2 NaN cccc dddd 236
3 NaN eeee ffff 230
Sydney
1 NaN hhhh gggg 2300
2 NaN kkkk llll 266
然后把索引改为ID,这样看起来像这样
ID New Name Store Price
Melbourne NaN
1 NaN aaaa bbbb 570
2 NaN cccc dddd 236
3 NaN eeee ffff 230
Sydney NaN
1 NaN hhhh gggg 2300
2 NaN kkkk llll 266
然后像这样
ID New Name Store Price
Melbourne NaN
Melbourne 1 aaaa bbbb 570
Melbourne 2 cccc dddd 236
Melbourne 3 eeee ffff 230
Sydney NaN
Sydney 1 hhhh gggg 2300
Sydney 2 kkkk llll 266
最后更改列名并删除没有值的行
City ID Name Store Price
Melbourne 1 aaaa bbbb 570
Melbourne 2 cccc dddd 236
Melbourne 3 eeee ffff 230
Sydney 1 hhhh gggg 2300
Sydney 2 kkkk llll 266
我不确定它是否可以实施。请给我一些关于如何实现这一点的想法。
有几种方法可以做到这一点,下面是一些关于如何实现您提出的方法的想法。你知道吗
第1步:
使用
str.isalpha()
方法检查字符串是否只包含字母字符:上面将返回一个
Series
,其中ID
列中的数值为None。您可以将其存储在新列中。你知道吗这个解决方案假设每个
x
都是一个字符串。你知道吗如果您不确定列中的所有数字都是字符串,您可以创建一个城市列表:
然后检查列中的值是否为城市,并将其存储在布尔值
Series
:应用
Series
作为掩码,并用None
替换值:(请注意,
~
表示“not”,因此这将返回值为“not a city”的行)。你知道吗第2步:
使用
ffill
方法填充新列:ffill
基本上完成了问题的第三步。你可以看看here。你知道吗第3步:
最后删除至少包含一个
None
的所有行:相关问题 更多 >
编程相关推荐