pandas.DataFrame()的基本操作
阿新 • • 發佈:2018-11-10
感覺上pandas的DataFrame就像numpy中的矩陣,不過它擁有列名和索引名,實際操作起來會更方便一些。
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
# 使用 瀏覽器 開啟 某網址
#import webbrowser
#link = 'https://www.tiobe.com/tiobe-index'
#webbrowser.open(link)
# 從 貼上板上 複製
df = pd.read_clipboard()
print(df)
'''
Oct 2018 Oct 2017 Change Programming Language Ratings Change.1
0 1 1 NaN Java 17.801% +5.37%
1 2 2 NaN C 15.376% +7.00%
2 3 3 NaN C++ 7.593% +2.59%
3 4 5 change Python 7.156% +3.35%
4 5 8 change Visual Basic .NET 5.884% +3.15%
'''
print(type(df)) # <class 'pandas.core.frame.DataFrame'>
# 打印出所有的 列名
print(df.columns)
'''
Index(['Oct 2018', 'Oct 2017', 'Change', 'Programming Language', 'Ratings',
'Change.1'],
dtype='object')
'''
# 打印出 其中 一列的 值
print(df.Ratings)
'''
0 17.801%
1 15.376%
2 7.593%
3 7.156%
4 5.884%
Name: Ratings, dtype: object
'''
# 可以使用訪問字典的方式 訪問
print(df['Ratings'])
'''
0 17.801%
1 15.376%
2 7.593%
3 7.156%
4 5.884%
Name: Ratings, dtype: object
'''
print(type(df['Ratings'])) # 每一列 其實都是一個 series : <class 'pandas.core.series.Series'>
# 拿出其中的某一些列,組成一個新的dataframe
df_new = DataFrame(df, columns=['Change' , 'Ratings'])
print(df_new)
df_new = DataFrame(df, columns=['Change', 'Ratings', 'name'])
print(df_new)
'''
Change Ratings name
0 Java None NaN
1 C None NaN
2 C++ None NaN
3 Python None NaN
4 Visual 5.884% NaN
新增的新列,會預設一 NaN填充
'''
# 為 新列 賦值
df_new['name'] = range(0, 5)
print(df_new)
'''
Change Ratings name
0 Java None 0
1 C None 1
2 C++ None 2
3 Python None 3
4 Visual 5.884% 4
'''
# 更改某一列 的值
df_new['Change'] = np.arange(0, 5)
print(df_new)
'''
Change Ratings name
0 0 None 0
1 1 None 1
2 2 None 2
3 3 None 3
4 4 5.884% 4
'''
# 直接賦值一個 Series 也可以
df_new['Ratings'] = pd.Series(np.arange(0, 5))
print(df_new)
# 單獨為 某列的某幾個值賦值
df_new['name'] = pd.Series([100, 300], index = [1, 2])
print(df_new)
'''
Change Ratings name
0 0 0 NaN
1 1 1 100.0
2 2 2 300.0
3 3 3 NaN
4 4 4 NaN
'''
series和dataframe的理解:
其實dataframe就是由多個series組成的,僅此而已。
但有時候,在用series組成列表生成dataframe的時候,需要使用T進行轉置。