python之Series及DataFrame

一、Series

# 创建series(和字典十分类似)--------》不指定Index
se = pd.Series({"a": 5, "b": 3, "c": 4})
print(se["a"])

console>>>
5
# 可以改变series中元素的值
se["a"] = "aaa"
print(se["a"])

cosole>>>
aaa
# 创建series(和字典十分类似)--------》指定Index
se = pd.Series({"a": 5, "b": 3, "c": 4}, index=["1", "1", "3"])
print(se)

console>>>
'''
console 对应索引没有值会被NaN代替
1   NaN
1   NaN
3   NaN
'''
se = pd.Series({"a": 5, "b": 3, "c": 4}, index=["a", "b", "f"])
print(se)

console>>>
'''
f 没有对应的索引,故f的值被NaN代替
a    5.0
b    3.0
f    NaN
'''
se = pd.Series({"a": 5, "b": 3, "c": 4, "d": 999}, index=["a", "b", "f"])
print(se)
'''
f 没有对应的索引,故f的值被NaN代替,没有索引对应d,故d的值不会出现
a    5.0
b    3.0
f    NaN
'''
se = pd.Series({"a": [4, 5, 6, 7, "index"], "b": {"江西": "南昌", "北京": "北京"}})
'''
没有指定索引,值会全部出现
a         [4, 5, 6, 7, index]
b    {'江西': '南昌', '北京': '北京'}
'''
print(se)
# 可以指定series的name
se = pd.Series({"a": [4, 5, 6, 7, "index"], "b": {"江西": "南昌", "北京": "北京"}}, name="series")

console>>>
a         [4, 5, 6, 7, index]
b    {'江西': '南昌', '北京': '北京'}
Name: series, dtype: object
# 利用numpy赋值
se = pd.Series(np.arange(5), index=list("abcde"), name="fromNp")
print(se)

console>>>
a    0
b    1
c    2
d    3
e    4
Name: fromNp, dtype: int32

二、DataFrame

# 通过字典构建DataFrame

dataFra = {"name": {1: "zhangsan", 2: "lisi", 3: "wangwu"}, "gender": {1: "man", 2: "woman", 3: "man"},
           "grade": {1: 80, 2: 95, 3: 90}}
df = pd.DataFrame(dataFra)
print(df)

console>>>
'''
python将字典的外部键作为列的索引,将内部的键作为行的索引
       name gender  grade
1  zhangsan    man     80
2      lisi  woman     95
3    wangwu    man     90
'''
# 通过Series创建DataFrame
# 指定对行和列的索引
df = pd.DataFrame(np.arange(9).reshape(3, 3), index=["a", "b", "c"], columns=[1, 2, 3])
print(df)

console>>>
'''
   1  2  3
a  0  1  2
b  3  4  5
c  6  7  8
'''
# 可以只取一列的值
print(df["name"])

console>>>
'''
1    zhangsan
2        lisi
3      wangwu
'''
# 可以只取一行的值
print(df[:1])

console>>>
'''
       name gender  grade
1  zhangsan    man     80
'''
# 可以取两行的值
print(df[:2])

console>>>
'''
       name gender  grade
1  zhangsan    man     80
2      lisi  woman     95
'''
# 通过列修改值(这里统一修改)
df.name = "hongkong"
print(df)
 
console>>>
'''
       name gender  grade
1  hongkong    man     80
2  hongkong  woman     95
3  hongkong    man     90
'''
# 通过列修改值(这里不统一修改,注意长度必须匹配)
df.grade = [100, 90, 80]
print(df)

console>>>
'''
       name gender  grade
1  hongkong    man    100
2  hongkong  woman     90
3  hongkong    man     80
'''
# 通过Series指定列的值
df.grade = pd.Series([90, 60, 70], index=[2, 1, 3])
print(df)

console>>>
'''
       name gender  grade
1  hongkong    man     60
2  hongkong  woman     90
3  hongkong    man     70
'''
# reindex不会改变原先的DataFrame,可以重新对行或者对列进行索引,index和columns二者取一或都有
df1 = df.reindex(columns=["col1", "col2", "col3"], index=["row1", "row2", "row3"])
print(df)
print(df1)

console>>>
'''
   1  2  3
a  0  1  2
b  3  4  5
c  6  7  8
       1   2   3
col1 NaN NaN NaN
col2 NaN NaN NaN
col3 NaN NaN Na
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值