我現在擁有的資料結構為資料框單行中的串列,我想將其分成多行。我現在正在使用的內容:

理想的結果是:
0 CCDC160 CYTH3 ......
1 6.5656 8.9028
2 6.2135 7.9683 .......
. . .
. . .
1000 5.6789 6.6787 ......
多次拆分為陣列對我來說不起作用。
uj5u.com熱心網友回復:
嘗試使用pd.concat:
new_df = pd.concat([df.drop('SeqData'), pd.DataFrame(df.loc['SeqData'].tolist()).T])
uj5u.com熱心網友回復:
您可以使用 explode 將串列分解為行。請參見下面的示例。
import pandas as pd
df = pd.DataFrame([['abc', 'def'],[[1,2,3],[4,5,6]]], columns=['0','1'])
print(df)
print(df.explode(['0','1']))
輸出:
0 1
0 abc def
1 [1, 2, 3] [4, 5, 6]
0 1
0 abc def
1 1 4
1 2 5
1 3 6
uj5u.com熱心網友回復:
這是展開串列的一種方法,其輸出大致類似于問題中指定的輸出:
import pandas as pd
df = pd.DataFrame({
'Gene_Name': ['CCDC160', 'CYTH3'],
'P_value': [0.000003, 0.000026],
'SeqData': [[6.5656, 6.2135, 5.5387], [8.9028, 7.9683, 8.8132]]
}).T
print(df)
df = pd.DataFrame(list(zip(*list(y for y in df.loc['SeqData']))), columns=df.loc['Gene_Name'].tolist())
print('\n', df)
輸出:
0 1
Gene_Name CCDC160 CYTH3
P_value 0.000003 0.000026
SeqData [6.5656, 6.2135, 5.5387] [8.9028, 7.9683, 8.8132]
CCDC160 CYTH3
0 6.5656 8.9028
1 6.2135 7.9683
2 5.5387 8.8132
uj5u.com熱心網友回復:
根據 Manjunath K Mayya 的帖子,我添加了 reset_index 以便重置行索引。
import pandas as pd
df = pd.DataFrame([['abc', 'def'],[[1,2,3],[4,5,6]]], columns=['0','1'])
print(df)
print(df.explode(['0','1']).reset_index(drop=True))
輸出:
0 1
0 abc def
1 [1, 2, 3] [4, 5, 6]
0 1
0 abc def
1 1 4
2 2 5
3 3 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449867.html
上一篇:沿numpy陣列不同軸的零件規格
