初始化 一个新的DataFrame
# 利用 列名 生成一个空的 DataFrame
columns = df.columns
new_df = pd.DataFrame(columns=columns)
# 利用词典 来生成一个空的 DataFrame
data = [{a:1,b:2},{a:1,b:23}]
new_df = pd.DataFrame(data)
nan 判断
age_null = pd.isnull(titanic_survival[‘age’])
平移数据 shift
df = pd.DataFrame({'A':[1,2,3,4,5,6],'B':[1,1,12,2,9,3]})
df['A_2'] = df['A'].shift(periods=2, axis=0,fill_value=0)
print(df)
print("- - "*12)
df_1 = df.shift(periods=2, axis=1)
print(df_1)
输出:
A B A_2
0 1 1 0
1 2 1 0
2 3 12 1
3 4 2 2
4 5 9 3
5 6 3 4
- - - - - - - - - - - - - - - - - - - - - - - -
A B A_2
0 NaN NaN 1.0
1 NaN NaN 2.0
2 NaN NaN 3.0
3 NaN NaN 4.0
4 NaN NaN 5.0
5 NaN NaN 6.0
- periods:移动的幅度,int类型,默认值为1。移动的列数,上下移动通过数字正负来判断
- axis:控制移动的方向,如果为0或者’index’,则上下移动,如果为1或者’columns’,则左右移动
diff 函数
diff函数是用来将数据进行某种移动之后与原数据进行比较得出的差异数据。默认参数:periods=1,执行了两个步骤:
- df.shift(periods=1, axis=0)
- df - df.shift()
这里diff只有periods一个参数,用来控制上下移动的列数。
df = pd.DataFrame({'A':[1,2,3,9,5,6],'B':[1,1,12,2,9,3]})
print(df['A'].diff())
输出:
0 NaN
1 1.0
2 1.0
3 6.0
4 -4.0
5 1.0
Name: A, dtype: float64
agg 一些参数含义
- mean:平均值
- std:标准差
- skew:偏度,衡量随机分布的不均衡性,偏度=0,数值相对均匀的分布在两侧
- kurtosis:峰度,概率密度在均值处峰值高低的特征
import numpy as np
from scipy import stats
x = np.random.randn(10000)
mu = np.mean(x, axis=0)
sigma = np.std(x, axis=0)
skew = stats.skew(x)
kurtosis = stats.kurtosis(x)
遍历pandas 数据
# 遍历
for index,row in list.iterrows():
print(row['a'])
print(row['b'])
# df.apply()遍历行并访问函数的多个列。
def valuation_formula(x, y):
return x * y * 0.5
df['price'] = df.apply(lambda row: valuation_formula(row['x'], row['y']), axis=1)
这种遍历很慢,不建议用,但是有一些需求可能也会用到
nan判断及处理
利用pd.isnull(x) 对nan数据的处理
def tranNanToFive(x):
if pd.isnull(x):
return 200
return x
dfNewTwo['c'] = dfNewTwo['c'].map(tranNanToFive)
可以有效的nan数据转换,当然也可以删除列数据为nan的行数据,例如如下:
# 删除为 nan的数据,根据列数据来判断,删除行数据
dfNewTwo.drop(dfNewTwo[np.isnan(dfNewTwo['c'])].index, inplace=True)
多列 过滤方法
可以用 | 、& 这两种运算符,但是使用这种方式,必须是使用 () 括号,不然会报错<

本文深入探讨Pandas库在数据处理方面的高级应用,包括DataFrame的初始化、数据平移、缺失值处理、列顺序调整、数据类型转换、统计分析、关联分析等关键操作,为数据科学家和分析师提供实用技巧。
最低0.47元/天 解锁文章
788

被折叠的 条评论
为什么被折叠?



