stmr.autoFlushFrequency(1000);
我在pandas df中有数据,如何创建一个没有任何5个数据的新4列数据帧?由于缺乏更好的词汇,基本上推动了数据框架。
答案 0 :(得分:1)
您可以将apply
与boolean indexing
:
df = df.apply(lambda x: pd.Series(x[x != 5].values, index=['col1', 'col2', 'col3']), axis=1)
print (df)
col1 col2 col3
2000-01-11 XLE XLV XLY
2000-01-12 XLE XLV XLY
2000-01-13 XLI XLV XLY
2000-01-14 XLE XLI XLV
2000-01-15 XLE XLI XLV
2000-01-16 XLE XLI XLV
numpy.sort
的另一个解决方案,并按iloc
选择:
df = pd.DataFrame(np.sort(df[df != 5].astype(str), axis=1),
index=df.index,
columns = list('abcd')).iloc[:, :3]
print (df)
a b c
2000-01-11 XLE XLV XLY
2000-01-12 XLE XLV XLY
2000-01-13 XLI XLV XLY
2000-01-14 XLE XLI XLV
2000-01-15 XLE XLI XLV
2000-01-16 XLE XLI XLV