DataFrame 列運算


import pandas as pd
import StringIO

table_buffer = StringIO.StringIO('''a b
2007-01-08  0.786667        270
2007-01-09  0.853333        280
2007-01-10  0.866667        282
2007-01-11  0.880000        277
2007-01-12  0.880000        266
2007-01-15  0.866667        279''')
df = pd.read_table(table_buffer, sep='\s+')

def calc_c(row):
    if row.a > 0.5 and row.a < 0.9:
        return row.b
    else:
        return None

df['c'] = df.apply(calc_c, axis=1)

# 對於簡單的條件可以用匿名函數
df['c'] = df.apply(lambda row: row.b if row.a > 0.5 and row.a < 0.9 else None, axis=1)

 

refer to:

https://www.zhihu.com/question/54631460

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM