DataFrame有apply、map等函数使用,还有某些数据行列的格式化操作。
===字符串操作=========================================================
df格式化操作某一列字符串。
1 使某一列的字符串只保留前三个字符:
df["所在楼层"]=df["所在楼层"].str[0:3]
2 替换操作(把“上海”替换为“深圳”)
df["area"] = df["area"].replace("上海", "深圳")
3 把“SZ”“SH”替换为小写"sz"“sh”
df["ts_code"].apply(lambda code: "sz"+code[:6] if ".SZ" in code else "sh"+code[:6])
把 600004.SH 变成 sh600004,把000004.SZ 变成sz000004
==数据操作=======================================================
1 保留三位小数
df.round(3)
不同列不同位数
df.round({"A":1, "B":2, "C":3, "D":4})
2
# 将 pct_change_wly_data 这列乘以100 保留两位小数 成为百分比
pct_Def = lambda P:"%.2f%%"%(P*100)
Df["pct_change"] = Df['pct_change_wly_data'].apply(pct_Def)
3 乘以10
df["A"]=df["A"]*10
================================================================
1 行与列操作和条件查询
# 选择单个列
name_column
=
df[
'Name'
]
# 选择多个列
subset
=
df[[
'Name'
,
'Age'
]]
# 按条件过滤行
filtered_df
=
df[df[
'Age'
] >
30
]
# 按行索引选择行
row
=
df.loc[
2
]
2 排序
sorted_df
=
df.sort_values(
'Age'
, ascending
=
False
)
3 聚合操作
# 求和
total_age
=
df[
'Age'
].
sum
()
# 均值
average_age
=
df[
'Age'
].mean()
# 计数
count
=
df[
'Age'
].count()
4 高级操作
|
5 缺失值处理
# 填充缺失值
df_filled = df.fillna(0)
# 删除包含缺失值的行
df_dropped = df.dropna()
6 合并
df1 = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
df2 = pd.DataFrame({'Name': ['Charlie', 'David'], 'Age': [35, 40]})
merged_df = pd.concat([df1, df2])