0. 用变量产生字符串的方法
f'getNthHighestSalary_{N}'
1. 从列表建立DataFrame
输入:student_data:[ [1, 15], [2, 11], [3, 11], [4, 20] ]
pd.DataFrame(student_data, columns=['student_id', 'age'])
2. 改变一列的数据类型
students['grade'] = students['grade'].astype(int)
3. 改变dataframe结构
纵向黏贴:pd.concat([df1, df2], ignore_index=True)
输入三列,一列作为index,一列作为列名,一列作为值,输出横表:weather.pivot(index='product', columns='quarter', values='sales')
上一个的反操作:pd.melt(report, id_vars=['product'], var_name='quarter', value_name='sales')
4. 按条件提取所需数据
# DataFrame的条件放在[]里,需要提取的列名是个列表。因此[['name','population', 'area']]
world[(world['area'] >= 3000000) | (world['population'] >= 25000000)][['name','population', 'area']]
5. 用merge横向并表
merged_data = pd.merge(customers, orders, on='customerId', how='left')
6. 去重和排序
ans = ans.drop_duplicates(subset=['id'])
ans = ans.sort_values(by=['id'])
7. 如果 DataFrame 的列是字符串类型,可以使用.str方法来对字符串进行操作。
以下是一些可以在.str方法下使用的函数:
lower(): 将字符串转换为小写。
upper(): 将字符串转换为大写。
title(): 将字符串中每个单词的首字母大写。
capitalize(): 将字符串的第一个字符转换为大写,其余字符转换为小写。
strip(): 去除字符串两端的空格。
replace(): 替换字符串中的子串。
split(): 将字符串分割成子串。
contains(): 判断字符串是否包含某个子串。
startswith(): 判断字符串是否以某个子串开头。
endswith(): 判断字符串是否以某个子串结尾。
isdigit(): 判断字符串是否只包含数字字符。
isalpha(): 判断字符串是否只包含字母字符。
isalnum(): 判断字符串是否只包含字母和数字字符。
len(): 返回字符串的长度。
8. 调用自定义函数的方法
apply():允许在 DataFrame 的列上应用自定义的函数,这个函数会作用于列上的每一个元素。
transform():通常用于按组操作,通常与groupby()结合使用。可以返回一个与输入大小相同的对象(例如 Series 或 DataFrame),且与输入具有相同的索引。
agg()/aggregate():通常用于聚合数据,与groupby()结合使用。可以在每个分组上应用一个或多个聚合函数。可以用于 DataFrame 或 Series。
常用的聚合函数有 df.groupby('Group').agg({'Value': ['min', 'median', 'max', 'std', 'var', 'sum', 'count', 'nunique', 'size', 'first', 'last']})
applymap():类似于apply(),但只能应用于 DataFrame,作用于每个元素,相当于map()作用于每一列的每个元素。
map():只能应用于 Series,作用于 Series 的每个元素。
9. 产生排名的函数 .rank()
ans['rank'] = ans['score'].rank(method='dense', ascending=False)。method可选参数还有‘average’, ‘min’, ‘max’, ‘first’, ‘dense’
10. agg()函数的应用 1484. Group Sold Products By The Date