2 回答

TA貢獻1909條經(jīng)驗 獲得超7個贊
我認為你有重復的列名,所以如果想要 select Seriesget DataFrame:
df = pd.DataFrame([[1,2],[4,5], [7,8]], index=list('aab')).T
print (df)
a a b
0 1 4 7
1 2 5 8
print (df['a'])
a a
0 1 4
1 2 5
print (type(df['a']))
<class 'pandas.core.frame.DataFrame'>
print (df['b'])
0 7
1 8
Name: b, dtype: int64
print (type(df['b']))
<class 'pandas.core.series.Series'>
編輯:
這是另一個問題,一個級別MultiIndex,解決方案是將第一級重新分配回列get_level_values:
mux = pd.MultiIndex([['COST_/CPM', 'CTR', 'ECPM/_ROI', 'Goal_Ratio', 'Hour_of_the_Day',
'IMP./Joins', 'Raw_Clicks_/_Unique_Clicks', 'Raw_Impressions',
'Unique_Goal_/_UniqueGoal_Forecasted_Value']],
labels=[[4, 7, 5, 6, 1, 8, 3, 0, 2]])
df = pd.DataFrame([range(9)], columns=mux)
print (type(df['CTR']))
<class 'pandas.core.frame.DataFrame'>
df.columns = df.columns.get_level_values(0)
print (type(df['CTR']))
<class 'pandas.core.series.Series'>
添加回答
舉報