我有几个csv文件我必须处理我在其中一列上运行一些函数lambda它的元素形式为
1000.50.0
现在我只想在元素有2个小数点时运行函数lambda。有些csv文件没有小数点,有些文件有小数点。
基本上我想做的是
if(行/列包含两个小数点):运行Lambda
对熊猫来说最有效的方法是什么?有没有一种方法可以在干净的熊猫符号中做到这一点?
理想情况下,我希望在整个Dataframe上进行操作,而不是循环遍历每个单独的元素,如果csv的一个元素中有2个小数点,则在整个列中。也许只扫描列的第一个元素?
编写一个检查条件的函数,当条件为True时才运行第二个函数:
check_condition_then_run(input_string):
if input_string.count('.') == 2:
return run_complicated_function(input_string=input_string)
else:
return input_string
run(input_string=input_string):
pass
df = pd.DataFrame ... # etc
df['result'] = df['column_with_strings'].apply(check_condition_then_run)
不确定是否关心返回值,但这种方式存储在result
列中。