pandas dataframe常用操作

pandas真是太好用了,边学边用,几乎可以进行所有的数据库操作

1. 遍历和判断是否为空,不知道我写的对不对,因为空的话是NaN,float类型,其他数据都是str,所以我这里根据type判断是否为空,pandas有fillna方法可以填充确实的数据,因为我这里空值可以由id计算,所以没有用fillna填充,哪位朋友有更好的判空方法也请不吝赐教。

import pandas as pd

# 读入csv,file1的列名为 id,url
df1 = pd.read_csv("file1.csv")

# 遍历dataframe df1
for i,v in df1.iterrows():
    url = v["url"]
    id = v["id"]
    # 判断是否为空
    if type(url) is float:
        print(0)

2. 向dataframe中增加一行,我这里用的append

注意:append返回空值,所以不要直接df.append(), 而是写作df = df.append()

df = pd.DataFrame(columns=["id","url"])
if s:
    df = df.append({"id":s["id"],"url":s["url"]},ignore_index = True)

df.to_csv("file2.csv")

3. 修改列名,删除列

显示列名,df.columns

# 修改列名, 将 ref_url 改为 url
df.rename(columns={"ref_url":"url"})

# 删除某一列,删除 url1 列
del df["url1"]

4. 假设我有两个表格,一个文件A.csv中有所有的 ["aid", "bid", "url"],B.csv中有部分符合要求的 ["aid", "url"]

实现 在B中增加 aid 对应的 bid

a = pd.read_csv("filea.csv")
b = pd.read_csv("fileb.csv")

result = pd.merge(b, a, on="aid", how="left")

# 合并后,列名应该是 ["aid_x","aid_y","bid_y","url_x","url_y"] 所以修改一下合并后的列名
del result["aid_y","url_y"]
result.rename(columns={"aid_x":"aid"})

result.to_csv("filec.csv")

5. 修改某个数据的值

# 将 df 中第2行(index为1的行)的 aid 列的值改为 after
df.loc[1,"aid"] = "after"

# 修改第三行的所有值
df.loc[2] = ["a","b","c"]

# 修改第三行某两个值
df.loc[2,["aid","bid"]] = ["aa","bb"]

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值