这几天在用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'
网友评论