【发布时间】:2013-10-24 13:35:03
【问题描述】:
我正在尝试在 IPython 上做一个单行器,但我得到了SyntaxError: invalid syntax。代码如下:
for zzz in ddd.index: zzz1 = zzz.split('///'); zzz3 = [zzz2.strip() for zzz2 in zzz1 if len(zzz1) > 1]; for zzz4 in zzz3: ddd.ix[zzz4]['Class'] = ddd.ix[zzz]['Class']; del ddd.ix[zzz]
我可以这样解释:
对于 DataFrame ddd 索引上的每个值,我使用 /// 作为分隔符对其进行拆分。然后,如果返回多个值,我为每个值创建一行并删除原始行。
例如,我有:
Class
lal 1
eri /// iii 2
aks 3
我要获得
Class
lal 1
eri 2
iii 2
aks 3
第一列(`lal', 'eri', ... )是数据帧的索引。
我怎样才能做到这一点?我已经搜索了文档,但我没有弄清楚如何去做。
谢谢
【问题讨论】:
-
这个重复:stackoverflow.com/questions/19552248/…,使用
ddd.ix[zzz4,'Class`] = ddd.ix[zzz,'Class'] -
它不起作用..也许它不允许使用这种语法在一行中使用两个 for?
-
出于好奇:为什么对这一行感兴趣?你有某种反垂直偏见吗?这在 Python 中会是个问题,因为编写好的代码涉及到
if/elif/else和try/except,你不能把它们放在一行。 -
大声笑,我的错。我也是,我只是在玩 IPython 以逐步创建管道,只是为了看看如何做某事..
标签: python pandas ipython dataframe