[Python] DataFrame は apply() を使用して複数の関数例を実装します

※この記事は私自身のデータ分析の一例です、無断転載はご遠慮ください

1. 記号・文字置換を実装する

import pandas as pd
import numpy as np
#将指定列的符号/字符进行替换
df['value'] = df['value'].apply(lambda x:x.replace(',','.'))
#input:3,10
#output:3.10

#将全文的符号/字符进行替换
st = st.apply(lambda x:x.replace('-',np.nan))
#input:'-'
#output:nan

2. 異なる列の値の比較を実現し、新しい列を生成します

#如果一列的数据大于另外一列,则新列的值为1,反之为0
df_st['>ad hoc MTR'] = df_st.apply(lambda x:1 if x['value'] > x['ad hoc MTR'] else 0,axis=1)
df_st['>MTR'] = df_st.apply(lambda x:1 if x['value'] > x['MTR'] else 0,axis=1)
df_st['>JG-MKN'] = df_st.apply(lambda x:1 if x['value'] > x['JG-MKN'] else 0,axis=1)
df_st['>MAC-MKN'] = df_st.apply(lambda x:1 if x['value'] > x['MAC-MKN'] else 0,axis=1)
df_st['>toelatingscrit. Ctgb'] = df_st.apply(lambda x:1 if x['value'] > x['toelatingscrit. Ctgb'] else 0,axis=1)
df_st['>wettelijk'] = df_st.apply(lambda x:1 if x['value'] > x['wettelijk'] else 0,axis=1)
#将以上的数值进行求和
df_st['num_standard_exceed'] = df_st.apply(lambda x:sum(x['>ad hoc MTR':]),axis=1)

3. 正規表現を使用してデータを抽出する

import pandas as pd
import re
 
#创建DataFrame
df1 = pd.DataFrame([['2015-03-24'],['2011-07-12'],['2010-02-08']])
 
#使用apply()和lambda进行提取:月份
df1 = df1[0].apply(lambda x:re.findall('\d+-(\d+)-\d+',x)[0])

おすすめ

転載: blog.csdn.net/Father_of_Python/article/details/123260934