pandas个人常用操作
2021-03-04 本文已影响0人
KyoDante
常用操作:
以下操作均在,导入pandas并命名为pd之后进行,数据未给出,只给出大致的用法:
import pandas as pd
pandas的基本对象: DataFrame,整体的思想是希望像操作sql表一样,来便捷地操作表格数据。
- 新建DataFrame
## 新建DataFrame
列表 = [{},{},...] # 可以是一个对象数组
df = pd.DataFrame(列表)
## 加载csv文件到DataFrame
df = pd.read_csv(文件路径)
## 保存DataFrame到csv文件
df.to_csv(路径, sep="\t", index=False) # 第一个参数是保存的路径,index参数是每个dataframe前面的index下标, sep是列之间的分隔符,此处指定为tab。分隔符可以为其它。
- 遍历DataFrame
## 要以 Pandas 的方式迭代遍历DataFrame的行,可以使用:
# 方式1
for index, row in df.iterrows():
print(row["c1"], row["c2"])
# 方式2
for row in df.itertuples(index=True, name='Pandas'):
print(getattr(row, "c1"), getattr(row, "c2"))
- 打印dataframe的前5条数据
print(df.head())
- 合并两个dataframe
new_df = pd.merge(df, df, left_on='左键', right_on='右键') # 默认是'inner'的连接方式。
- 丢弃列
df = df.drop(['列名’], axis=1)
- 单列分割为多列(比如date列数据为:年/月/日,分拆成三列数据。)
df[['year', 'month', 'day']] = df['date'].str.split('/', 3, expand=True)
- 多列合并为一列
df['date'] = df['year'] + '/' + df['month'] + '/' + df['day']
- 多组聚合
final_data = df.groupby(by=["date", "post_id"], axis=0)["amount"].sum() # 对date列做第一次分组,然后再对post_id做第二次分组,然后对amount列进行求和。但是最后得到的结果会是优化后的显示表格,要还原成原本的表格形式,应该用reset_index()进行返回。
final_data = final_data.reset_index()
- 对列的每个元素做某个操作
df['Label'].map(lambda x: int(x))