pandas(二十三)使用apply函数给表格同时添加多列

一、Pandas使用apply函数给表格同时添加多列
  • 怎样给表格添加一列

    def my_func(row):
    new column = row["a"] + rowl["b"]
    return new column
    df["new_column"] = df.apply(my_func, axis=1)
    
  • 怎样同时添加多列?

    def my func(row):
    	newa, newb = row["a"] + row["b"], rowl["a"] - row["b"]
    	return newa, newb
    df[["newa", "newb"]] = df.apply(my func, axis=1, result type="expand")
    
二、应用示例
fpath = '/Users/python/Desktop/means/ml-25m/beijing_tianqi_2017-2019.csv'
df = pd.read_csv(fpath)

df.head()

	ymd	bWendu	yWendu	tianqi	fengxiang	fengli	aqi	aqiInfo	aqiLevel
0	2017-01-01	5-3℃	霾~晴	南风	1-2450	严重污染	6
1	2017-01-02	7-6℃	晴~霾	南风	1-2246	重度污染	5
2	2017-01-03	5-5℃	霾		南风	1-2320	严重污染	6
3	2017-01-04	6-5℃	霾		北风	1-2360	严重污染	6
4	2017-01-05	2-4℃	霾		北风	1-2280	重度污染	5
df['bWendu'] = df['bWendu'].map(lambda x: int(str(x).replace('℃', '')))
df['yWendu'] = df['yWendu'].map(lambda x: int(str(x).replace('℃', '')))
df.head()

ymd	bWendu	yWendu	tianqi	fengxiang	fengli	aqi	aqiInfo	aqiLevel
0	2017-01-01	5	-3~晴	南风	1-2450	严重污染	6
1	2017-01-02	7	-6~霾	南风	1-2246	重度污染	5
2	2017-01-03	5	-5	霾		南风	1-2320	严重污染	6
3	2017-01-04	6	-5	霾		北风	1-2360	严重污染	6
4	2017-01-05	2	-4	霾		北风	1-2280	重度污染	5

定义了一个名为 my_func 的函数,该函数接受一个行对象 row 作为参数,并返回两个值:wencha 和 avg
将这个函数应用于 DataFrame df 的每一行,使用 .apply() 方法,并指定 axis=1 来按行操作
使用 result_type=‘expand’ 来指定结果是扩展成新的列
将函数返回的两个值分别赋值给 DataFrame df 的新列 ‘wencha’ 和 ‘avg’

def my_func(row):
    return row['bWendu'] - row['yWendu'], (row['bWendu'] + row['yWendu'])/2
df[['wencha', 'avg']] = df.apply(my_func, axis=1, result_type='expand')
df.head()

	ymd	bWendu	yWendu	tianqi	fengxiang	fengli	aqi	aqiInfo	aqiLevel	wencha	avg
0	2017-01-01	5	-3~晴	南风	1-2450	严重污染	6	8.0		1.0
1	2017-01-02	7	-6~霾	南风	1-2246	重度污染	5	13.0	0.5
2	2017-01-03	5	-5	霾		南风	1-2320	严重污染	6	10.0	0.0
3	2017-01-04	6	-5	霾		北风	1-2360	严重污染	6	11.0	0.5
4	2017-01-05	2	-4	霾		北风	1-2280	重度污染	5	6.0		-1.0

猜你喜欢

转载自blog.csdn.net/a6864657/article/details/131688095