1)一種方式來構造列
In [916]: df.reindex(columns=sum([[c, 'X'] for c in df.columns], [])[:-1], fill_value=0)
Out[916]:
A X B X C
0 a 0 d 0 e
1 b 0 NaN 0 a
2 c 0 c 0 f
3 d 0 f 0 g
In [917]: sum([[c, 'X'] for c in df.columns], [])[:-1]
Out[917]: ['A', 'X', 'B', 'X', 'C']
2)另一種方式來構造
In [924]: def mixcols(cols):
...: ncols = ['X'] * 2 * len(cols)
...: ncols[0::2] = cols
...: return ncols[:-1]
In [925]: mixcols(df.columns)
Out[925]: ['A', 'X', 'B', 'X', 'C']
In [926]: df.reindex(columns=mixcols(df.columns), fill_value=0)
Out[926]:
A X B X C
0 a 0 d 0 e
1 b 0 NaN 0 a
2 c 0 c 0 f
3 d 0 f 0 g
3)從@piR
In [944]: [c for cx in zip(df.columns, ['X']*len(df.columns)*2) for c in cx][:-1]
Out[944]: ['A', 'X', 'B', 'X', 'C']
也激發,
In [939]: from itertools import chain, izip
In [940]: list(chain.from_iterable(izip(df.columns, ['X']*len(df.columns)*2)))[:-1]
Out[940]: ['A', 'X', 'B', 'X', 'C']
4)不推薦方式
In [935]: '-|-X-|-'.join(df.columns).split('-|-')
Out[935]: ['A', 'X', 'B', 'X', 'C']
'cytoolz'方法幾乎是作弊,它非常酷。 –
這是一個黑客和@cᴏʟᴅsᴘᴇᴇᴅ是OP,所以他很聰明,弄清楚( - : – piRSquared