1. 程式人生 > 其它 >Pandas 新增修改資料 + 資料統計函式

Pandas 新增修改資料 + 資料統計函式

新增修改資料

# 1)新增Series
    s1 = pd.Series(list(range(4)), name='F')

# 2)新增DataFrame的資料
    df = df.append({'A':i}, ignore_index=True)

# 3)使用concat新增DataFrame資料
     pd.concat(
                [pd.DataFrame([i], columns=['A']) for i in range(5)],
                ignore_index=True
            )

# 4)df.apply方法
# 利用函式,新增一列 值為其他列的條件篩選後自定義的值
def get_temperature_type(df):
            if df['bWendu'] > 0:
                return '高溫'
            if df['bWendu'] < 0:	# 這裡如果temperature_type為已有列為修改,否則新增
                return '低溫'	# axis=1,指定索引為columns,新增一列名字為temperature_type
        new_column = df.loc[:, 'temperature_type'] = df.apply(get_temperature_type, axis=1) 
df['temperature_type'].value_counts()	# 檢視新列計數

# 5)df.assign方法
# 在原有列的基礎上新增列 ,新列的名稱為yWendu_huashi和bWendu_huashi
df.assign(
	yWendu_huashi = lambda df:df['yWendu'] * 9/5 + 32,
	bWendu_huashi = lambda df:df['bWendu'] * 9/5 + 32
)

# 6)條件選擇分組賦值
# 新增一列並重新利用條件選擇賦值
df['wencha_type'] = ''	# 如果成立 認為wencha_type新列為後面的值
df.loc[df['bWendu'] - df['yWendu'] > 0, 'wencha_type'] = '溫差大'	# 如果b溫度-y溫度>0,那麼將溫差大複製給wencha_type新列
df.loc[df['bWendu'] - df['yWendu'] <=0, 'wencha_type'] = '溫差正常'
df['wencha_type'].value_counts()	# 檢視新列數量

資料統計函式

1)彙總類 + 去重 + 計數
# 1.1)取出所有的統計結果
df.describe()

# 1.2)平均值
df['bWendu'].mean()

# 1.3)標準差
df['bWendu'].std()

# 1.4)最大值
df['bWendu'].max()

# 1.5)最小值
df['bWendu'].min()

# 1.6)去重
df['fengxiang'].unique()

# 1.7)計數
df['fengxiang'].value_counts()

# 2)相關係數和協方差
"""
相關係數:衡量相似程度,當他們的相關係數為1時,說明兩個變數變化時的正向相似最大,當相似係數為-1時候,說明兩個變數的反向相似程度最大
相關係數矩陣:df.corr()

協方差:衡量同向反向程度,如果協方差為正,說明x,y同向變化,協方差越大說明同向程度越高。如果協方差為負,說明x,y反向運動,協方差越小說明反向程度越高
協方差矩陣:df.cov()
"""
# 單獨檢視2個列的相關係數和協方差:
    df['aqi'].corr(df['bWendu'])	# # 檢視空氣質量和最高溫度的相關係數
    df['aqi'].corr(df['bWendu']) - df['aqi'].corr(df['yWendu'])		# 空氣質量和溫差的相關係數