Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何合并lambda和.str.contains_Python_Pandas_Data Wrangling - Fatal编程技术网

Python 如何合并lambda和.str.contains

Python 如何合并lambda和.str.contains,python,pandas,data-wrangling,Python,Pandas,Data Wrangling,我正在对包含电流和电压数据的.csv文件进行一些数据处理,如下所示: 问题是我复制了四次数据,这是没有效率的 有人能帮我合并“.map”行和“.str.contains”行吗?这样我可以节省时间? 谢谢大家 ## reading the output file outcome = pd.read_csv(save_path / f"{circuit_name}.csv", error_bad_lines=False) #current = pd.rea

我正在对包含电流和电压数据的.csv文件进行一些数据处理,如下所示: 问题是我复制了四次数据,这是没有效率的 有人能帮我合并“.map”行和“.str.contains”行吗?这样我可以节省时间? 谢谢大家

    ## reading the output file
    outcome = pd.read_csv(save_path / f"{circuit_name}.csv", error_bad_lines=False)
    #current = pd.read_csv(save_path / f"{circuit_name}.csv", error_bad_lines=False)
    #voltage = pd.read_csv(save_path / f"{circuit_name}.csv", error_bad_lines=False)
    return outcome


def treat_spice_outcome(outcome):
    ## find only rows with the keyword (vdummy) and (v(2))
    current = outcome[outcome['Circuit: *array'].str.contains("vdummy")]
    voltage = outcome[outcome['Circuit: *array'].str.contains("v\(2\)")]

    ## rename the column names
    voltage = voltage.rename(columns={"Circuit: *array": "voltage"})
    current = current.rename(columns={"Circuit: *array": "current"})

    ## remove unwanted characters like (v(2) = ) from each row
    voltage['voltage'] = voltage['voltage'].map(lambda x: x.lstrip('v(2) = ').rstrip('aAbBcC'))
    current['current'] = current['current'].map(lambda x: x.lstrip('i(vdummy) = ').rstrip('aAbBcC'))

    ## reseting index for merging
    current = current.reset_index(drop = True)
    voltage = voltage.reset_index(drop = True)

    ## merge the two dataframes
    results = pd.merge(voltage, current, left_index=True, right_index=True)
    results = results.astype(float)
    return results

欢迎来到SO!请花点时间阅读如何发布问题: