我有一個看起來像這樣的串列:
mylist = [['I','have','an','apple'],['she','have','an','orange']]
并且我希望 mylist 中包含的每個串列都應該是資料框中的一行,并且資料框應如下所示:
text
'I','have','an','apple'
'she','have','an','orange'
我試圖轉換它,但它顯示了這樣的結果:
0 1 2 3
'I' 'have' 'an' 'apple'
'she' 'have' 'an' 'orange'
我該怎么做?
uj5u.com熱心網友回復:
注意。千萬不能使用list作為變數,這將覆寫內置蟒
資料框建構式
您可以在 DataFrame 建構式中使用字典:
lst = [['I','have','an','apple'],['she','have','an','orange']]
df = pd.DataFrame({'name': lst})
輸出:
name
0 [I, have, an, apple]
1 [she, have, an, orange]
系列建構式
或者,使用您轉換為框架的系列:
df = pd.Series(lst, name='text').to_frame()
手動重塑 DataFrame 建構式的輸入
或者手動將每個串列包裝在一個子串列中以避免擴展到列:
lst = [['I','have','an','apple'],['she','have','an','orange']]
df = pd.DataFrame([[e] for e in lst])
uj5u.com熱心網友回復:
這是一個超級簡單的方法,只需使用pd.DataFrame-
mylist = [['I','have','an','apple'],['she','have','an','orange']]
df = pd.DataFrame({'text':mylist})
print(df)
text
0 [I, have, an, apple]
1 [she, have, an, orange]
uj5u.com熱心網友回復:
嘗試agg:
>>> df.agg(list, axis=1)
0 [I, have, an, apple]
1 [she, have, an, orange]
dtype: object
>>>
到DataFrame:
>>> df.agg(list, axis=1).to_frame('text')
text
0 [I, have, an, apple]
1 [she, have, an, orange]
>>>
uj5u.com熱心網友回復:
嘗試:
lst = [['I','have','an','apple'],['she','have','an','orange']]
df = pd.Series(lst, name='text').apply(lambda x: ', '.join(f"'{a}'" for a in x)).to_frame()
輸出:
text
0 'I', 'have', 'an', 'apple'
1 'she', 'have', 'an', 'orange'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/315284.html
上一篇:從dplyr的隨機列中選擇值
下一篇:根據上一個值在資料框中創建下一行
