操作dataFrame

2019-07-13  本文已影响0人  一笑乘风凉

这几天在用dataFrame做算法的过程中,总数要不断查dataFrame,索性将用到了的操作dataFrame的方法记录下来,以便后续利用。
一、删除dataFrame中的某些列

df.drop(['a','b'],axis=1)

二、pandas DataFrame的 applymap() 函数可以对DataFrame里的每个值进行处理,然后返回一个新的DataFrame

df = pd.DataFrame({
    'a': [1, 2, 3, 4, 5],
    'b': [3, 6, 's', 'c', np.nan],
    'c': [6, 7, 8, 9, 0]
})

def str_float(x):
    if isinstance(x,str):
        pass
    else:
        return float(x)
    
print(df.applymap(str_float))

#打印输出:
     a    b    c
0  1.0  3.0  6.0
1  2.0  6.0  7.0
2  3.0  NaN  8.0
3  4.0  NaN  9.0
4  5.0  NaN  0.0

三、读取csv文件的指定的列:

file_data = pd.read_csv(file_path, encoding=code, header=1,usecols=combin_items)
#file_path:文件路径
#usecols:要读取的列的list

四、获取函数和列数

df.columns.size   #列数 
df.iloc[:,0].size    #行数 
或者:
df.shape[1] #获取列数
df.shape[0] #获取行数
len(df)  # 获取行数

五、dataFrame根据字符串筛选数据

file_data = file_data[file_data[condition_key].str.contains(a, na=False, regex=True)]
# a = "sss"

六、将dataFrame中的数据进行转化,字符转float
(当字符转不了float时,会用nan代替)

    def strToFloat(fixData):
        for item in Items:
            fixData[item] = pd.to_numeric(fixData[item], errors='coerce')
        return fixData

七、筛选出dataFrame中符合条件的数据

fixData = file_data[pd.eval(num_condition_sum)]
# 例如:num_condition_sum = 'df[\'key1\']>1'
上一篇下一篇

猜你喜欢

热点阅读