這是我的代碼:
df = pd.read_csv('my_path\\zzounds.csv')
df.head()
variation_type main_image
['yellow', 'orange'] ['https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg', 'https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg']
我試過這段代碼
df.explode(['variation_type','main_image'])
但它正在回傳原始資料框。
uj5u.com熱心網友回復:
由于您正在讀取 csv 檔案,因此您需要先轉換字串串列
df[['variation_type','main_image']] = df[['variation_type','main_image']].applymap(lambda x: pd.eval(x, local_dict={'nan': np.nan}))
# or
df[['variation_type','main_image']] = df[['variation_type','main_image']].applymap(lambda x: eval(x, {'nan': np.nan}))
df = df.explode(['variation_type','main_image'])
uj5u.com熱心網友回復:
我相信這是因為 python 很難以這種方式爆炸多個列。
您可以使用此代碼獲得我相信您期望的結果
data = {
' variation_type' : [['yellow', 'orange']],
'main_image' : [['https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg', 'https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg']]
}
df = pd.DataFrame(data)
df.apply(pd.Series.explode)
***注意:這僅在所有“串列”欄位的長度相同時才有效
uj5u.com熱心網友回復:
只是為了縮小問題范圍,請注意問題中顯示的資料框確實適用于explode(). 如果您的值是看起來像串列的字串,那么按照@Ynjxsjmh 的建議,可能需要先將它們轉換為串列值。
示例測驗代碼:
import pandas as pd
df = pd.DataFrame({
'variation_type':[['yellow', 'orange']],
'main_image':[['https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg', 'https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg']]})
print(df.to_string())
df = df.explode(['variation_type','main_image'])
print(df.to_string())
輸入:
variation_type main_image
0 [yellow, orange] [https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg, https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg]
輸出:
variation_type main_image
0 yellow https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg
0 orange https://c1.zzounds.com/media/productmedia/fit,600by600/quality,85/GIGBAR_MOVE_ON_TRIPOD_812129-0eddea01276623f9a03cbfdd86eb3bd1.jpg
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/484299.html
標籤:Python python-3.x 熊猫
