DataFrame处理记

在做json格式的数据处理,好心人整成了csv文件,问题在于有的数据是list类型的,读csv读成了dataframe,所以在处理df数据、赋list值时碰了不少壁,狠狠记下来。

  1. df.iloc()是根据index序号选择值,df.loc()是根据行列名选择值
  2. 为df某一单元格赋list值时用df.at(),set_value已经被淘汰了,同时at()也是根据行列名选中
  3. 根据条件筛选某些行列时是会带着行列的index值一起选走的,类似excel的筛选功能,选走这些行列不会自动生成新的索引值,所以这时如果用loc()或at()函数对新df操作时很可能会混乱。正确方法是筛选后用reset_index()方法重新生成新索引

还有其他一些杂七杂八的坑be like:

  1. 百度翻译的api标准版(免费的那个)一秒只能调用一次,我汉译英译汉每次译完还要time.sleep(1)一下😅
  2. jieba分词后再生成list有时会报莫名其妙的错误
    seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
    print(", ".join(seg_list))
    print(type(seg_list))
    
    
    
    pp = list(jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造"))  # 搜索引擎模式
    print(pp)    
    print(type(pp))
    print(type(pp[0]))

    网上现成的代码跑起来结果是

    他, 来到, 了, 网易, 杭研, 大厦
    <class 'generator'>
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    Input In [124], in <cell line: 7>()
          2 print(", ".join(seg_list))
          3 print(type(seg_list))
    ----> 7 pp = list(seg_list)  # 搜索引擎模式
          8 print(pp)    
          9 print(type(pp))
    
    TypeError: 'dict' object is not callabl

    怎么都解决不了,结果换一个jupyter文件跑这段代码一点问题都没有😅只好杀掉现在这个kernal全部重新运行,好在后来也没报错。

  3. 还学到了一点,df数据存为csv文件,在读取时list可能会被读成str,应该用

    df = pd.read_csv(df_name, converters={'column_name': eval})
    
    #出自https://qastack.cn/programming/23111990/pandas-dataframe-stored-list-as-string-how-to-convert-back-to-list
  4. 就这样

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值