import pandas as pd
country1 = pd.Series({'Name': '中国',
'Language': 'Chinese',
'Area': '9.597M km2',
'Happiness Rank': 79})
country2 = pd.Series({'Name': '美国',
'Language': 'English (US)',
'Area': '9.834M km2',
'Happiness Rank': 14})
country3 = pd.Series({'Name': '澳大利亚',
'Language': 'English (AU)',
'Area': '7.692M km2',
'Happiness Rank': 9})
df = pd.DataFrame([country1, country2, country3], index=['CH', 'US', 'AU'])
print(df)
Area Happiness Rank Language Name
CH 9.597M km2 79 Chinese 中国
US 9.834M km2 14 English (US) 美国
AU 7.692M km2 9 English (AU) 澳大利亚
# 添加数据
# 如果个数小于要求的个数,会自动进行“广播”操作
# 如果大于要求的个数,会报错
df['Location'] = '地球'
print(df)
df['Region'] = ['亚洲', '北美洲', '大洋洲']
print(df)
Name Language Area Happiness Rank Location
CH 中国 Chinese 9.597M km2 79 地球
US 美国 English (US) 9.834M km2 14 地球
AU 澳大利亚 English (AU) 7.692M km2 9 地球
Name Language Area Happiness Rank Location Region
CH 中国 Chinese 9.597M km2 79 地球 亚洲
US 美国 English (US) 9.834M km2 14 地球 北美洲
AU 澳大利亚 English (AU) 7.692M km2 9 地球 大洋洲
二.DataFrame索引
# 行索引
print('loc:')
print(df.loc['CH'])
print(type(df.loc['CH']))
print('iloc:')
print(df.iloc[1])
print(type(df.iloc[1])
loc:
Area 9.597M km2
Happiness Rank 79
Language Chinese
Name 中国
Location 地球
Region 亚洲
Name: CH, dtype: object
<class 'pandas.core.series.Series'>
iloc:
Area 9.834M km2
Happiness Rank 14
Language English (US)
Name 美国
Location 地球
Region 北美洲
Name: US, dtype: object
<class 'pandas.core.series.Series'>
# 列索引
print(df['Area'])
print(type(df['Area']))
CH 9.597M km2
US 9.834M km2
AU 7.692M km2
Name: Area, dtype: object
<class 'pandas.core.series.Series'>
# 获取不连续的列数据
print(df[['Name', 'Area']])
Name Area
CH 中国 9.597M km2
US 美国 9.834M km2
AU 澳大利亚 7.692M km2
# 混合索引
# 注意写法上的区别
print('先取出列,再取行:')
print(df['Area']['CH'])
print(df['Area'].loc['CH'])
print(df['Area'].iloc[0])
print('先取出行,再取列:')
print(df.loc['CH']['Area'])
print(df.iloc[0]['Area'])
先取出列,再取行:
9.597M km2
9.597M km2
9.597M km2
先取出行,再取列:
9.597M km2
9.597M km2
# 转换行和列
print(df.T)
CH US AU
Area 9.597M km2 9.834M km2 7.692M km2
Happiness Rank 79 14 9
Language Chinese English (US) English (AU)
Name 中国 美国 澳大利亚
Location 地球 地球 地球
Region 亚洲 北美洲 大洋洲
三.删除操作
print(df.drop(['CH']))
# 注意drop操作只是将修改后的数据copy一份,而不会对原始数据进行修改
print(df)
Area Happiness Rank Language Name Location Region
US 9.834M km2 14 English (US) 美国 地球 北美洲
AU 7.692M km2 9 English (AU) 澳大利亚 地球 大洋洲
Area Happiness Rank Language Name Location Region
CH 9.597M km2 79 Chinese 中国 地球 亚洲
US 9.834M km2 14 English (US) 美国 地球 北美洲
AU 7.692M km2 9 English (AU) 澳大利亚 地球 大洋洲
print(df.drop(['CH'], inplace=True))
# 如果使用了inplace=True,会在原始数据上进行修改,同时不会返回一个copy
print(df)
None
Area Happiness Rank Language Name Location Region
US 9.834M km2 14 English (US) 美国 地球 北美洲
AU 7.692M km2 9 English (AU) 澳大利亚 地球