Panads(三) 資料列的增加

2021-10-07 08:56:21 字數 3454 閱讀 2297

在進行資料分析時,經常需要按照一定條件建立新的資料列,然後進行進一步分析。

import pandas as pd

df = pd.read_csv(xx.csv)

# 替換掉溫度的字尾℃

df.loc[:, "bwendu"] = df["bwendu"].str.replace("℃", "").astype('int32')

df.loc[:, "ywendu"] = df["ywendu"].str.replace("℃", "").astype('int32')

print(df.head())

ymdbwendu

ywendu

tianqi

fengxiang

fengli

aqiaqiinfo

aqilevel

02018-01-013-6

晴~多雲

東北風1-2級59良

212018-01-022-5

陰~多雲

東北風1-2級49優

122018-01-032-5

多雲北風

1-2級28優

132018-01-040-8

陰東北風

1-2級28優

142018-01-053-6

多雲~晴

西北風1-2級50優

1例項:計算溫差

# 注意,df["bwendu"]其實是乙個series,後面的減法返回的是series

df.loc[:, "wencha"] = df["bwendu"] - df["ywendu"]

print(df.head())

ymdbwendu

ywendu

tianqi

fengxiang

fengli

aqiaqiinfo

aqilevel

wencha

02018-01-013-6

晴~多雲

東北風1-2級59良

2912018-01-022-5

陰~多雲

東北風1-2級49優

1722018-01-032-5

多雲北風

1-2級28優

1732018-01-040-8

陰東北風

1-2級28優

1842018-01-053-6

多雲~晴

西北風1-2級50優

19例項:新增一列溫度型別:

如果最高溫度大於33度就是高溫

低於-10度是低溫

否則是常溫

def get_wendu_type(x):

if x["bwendu"] > 33:

return '高溫'

if x["ywendu"] < -10:

return '低溫'

return '常溫'

# 注意需要設定axis==1,這是series的index是columns

# 檢視溫度型別的計數

例項:將溫度從攝氏度變成華氏度

# 可以同時新增多個新的列

df.assign(

ywendu_huashi = lambda x : x["ywendu"] * 9 / 5 + 32,

# 攝氏度轉華氏度

bwendu_huashi = lambda x : x["bwendu"] * 9 / 5 + 32

)

ymdbwendu

ywendu

tianqi

fengxiang

fengli

aqiaqiinfo

aqilevel

wencha

wendu_type

ywendu_huashi

bwendu_huashi

02018-01-013-6

晴~多雲

東北風1-2級59良

29常溫21.2

37.4

12018-01-022-5

陰~多雲

東北風1-2級49優

17常溫23.0

35.6

22018-01-032-5

多雲北風

1-2級28優

17常溫23.0

35.6

32018-01-040-8

陰東北風

1-2級28優

18常溫17.6

32.0

42018-01-053-6

多雲~晴

西北風1-2級50優

19常溫21.2

37.4

......

......

......

......

......

......

......

3602018-12-27

-5-12

多雲~晴

西北風3級48優

17低溫10.4

23.0

3612018-12-28

-3-11

晴西北風

3級40優1

8低溫12.2

26.6

3622018-12-29

-3-12

晴西北風

2級29優1

9低溫10.4

26.6

3632018-12-30

-2-11

晴~多雲

東北風1級31優

19低溫12.2

28.4

3642018-12-31

-2-10

多雲東北風

1級56良2

8常溫14.0

28.4

365 rows × 13 columns

按條件先選擇資料,然後對這部分資料賦值新列

例項:高低溫差大於10度,則認為溫差大

# 先建立空列(這是第一種建立新列的方法)

df['wencha_type'] = ''

df.loc[df["bwendu"]-df["ywendu"]>10, "wencha_type"] = "溫差大"

df.loc[df["bwendu"]-df["ywendu"]<=10, "wencha_type"] = "溫差正常"

資料庫增加新列

2017年02月14日 11 24 11 public class copyofdatabasehelper extends sqliteopenhelper return db helper public copyofdatabasehelper context context 資料庫建立時執行 ...

資料庫 insert 增加列

一些出現的問題 1.insert 增加列 增加乙個列 alter table 表名 add 列名 資料型別 如 alter table emp add weight number 38,0 修改乙個列的資料型別 一般限於修改長度,修改為乙個不同型別時有諸多限制 alter table 表名 modi...

資料庫的增 刪 改 查 增加列 刪除列

varchar n n為數字,表示n位數的字元。增 create datebase xuesheng 建立乙個xuesheng的資料庫,注意要有go go create table xueshengxinxi code int,編號為int name varchar 20 名字為varchar sc...