如何使用 Python Pandas 仅显示某些列?
How can I show only some columns using Python Pandas?
我已经尝试了以下代码并且它有效,但是它显示了我不需要的多余列。这是显示额外列的输出:
import pandas as pd
df = pd.read_csv("data.csv")
df = df.groupby(['City1', 'City2']).sum('PassengerTrips')
df['Vacancy'] = 1-df['PassengerTrips'] / df['Seats']
df = df.groupby(['City1','City2']).max('Vacancy')
df = df.sort_values('Vacancy', ascending =False)
print('The 10 routes with the highest proportion of vacant seats:')
print(df[:11])
我试图在对空缺值进行排序后添加以下代码,但是它给我一个错误:
df = df[['City1', 'City2', 'Vacancy']]
City1
和 City2
在索引中,因为您在其上应用了 groupby
。
您可以使用 reset_index
将它们放在列中以获得预期结果:
df = df.reset_index(drop=False)
df = df[['City1', 'City2', 'Vacancy']]
或者,如果你想让 City1
和 City2
在索引中,你可以按照@Corralien 在他的评论中所说的那样做:df = df['Vacancy']
甚至 df = df['Vacancy'].to_frame()
得到 DataFrame
而不是 Serie
。
我已经尝试了以下代码并且它有效,但是它显示了我不需要的多余列。这是显示额外列的输出:
import pandas as pd
df = pd.read_csv("data.csv")
df = df.groupby(['City1', 'City2']).sum('PassengerTrips')
df['Vacancy'] = 1-df['PassengerTrips'] / df['Seats']
df = df.groupby(['City1','City2']).max('Vacancy')
df = df.sort_values('Vacancy', ascending =False)
print('The 10 routes with the highest proportion of vacant seats:')
print(df[:11])
我试图在对空缺值进行排序后添加以下代码,但是它给我一个错误:
df = df[['City1', 'City2', 'Vacancy']]
City1
和 City2
在索引中,因为您在其上应用了 groupby
。
您可以使用 reset_index
将它们放在列中以获得预期结果:
df = df.reset_index(drop=False)
df = df[['City1', 'City2', 'Vacancy']]
或者,如果你想让 City1
和 City2
在索引中,你可以按照@Corralien 在他的评论中所说的那样做:df = df['Vacancy']
甚至 df = df['Vacancy'].to_frame()
得到 DataFrame
而不是 Serie
。