![](/img/trans.png)
[英]Creating a DataFrame in Pandas for a two columns and single data row
[英]Creating single row pandas dataframe
我有一個像這樣的數據框-
0
0 a 43
1 b 630
2 r 587
3 i 462
4 g 153
5 t 266
我想創建一個看起來像這樣的新數據框-
a b r i g t
0 43 630 587 462 153 266
您可以通過df.T
或df.transpose()
轉置數據df.T
:
df = pd.DataFrame([['A', 1], ['B', 2], ['C', 3], ['D', 4], ['E', 5]],
columns=['col1', 'col2'])
print(df)
col1 col2
0 A 1
1 B 2
2 C 3
3 D 4
4 E 5
res = df.set_index('col1').T
結果:
print(res)
col1 A B C D E
col2 1 2 3 4 5
如果您只有一列這種格式a 43
,則應該可以使用:
df.columns = ['col']
df = pd.DataFrame(df.col.str.split(' ',1).tolist(), columns = ['col1','col2']).T.reset_index(drop=True)
df = df.rename(columns=df.iloc[0]).drop(df.index[0])
輸入:
df = pd.DataFrame(data=[
['a 43',],
['b 630'],
['r 587']],
columns=['col'])
col
0 a 43
1 b 630
2 r 587
輸出:
a b r
1 43 630 587
通過split的列表理解創建2d數組,然后通過構造函數創建新的Dataframe
:
a = np.array([x.split() for x in df['0']])
df = pd.DataFrame([a[:, 1]], columns=a[:, 0])
print (df)
a b r i g t
0 43 630 587 462 153 266
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.