如何在不循环的情况下替换数据框中每个单元格的值

斯拉姆

如何以一种更简单的方式将此条件应用于数据框的每个单元格(检查是否有字符串,如果找到,则替换为0)?

for col in data.columns:
    for day in data.index:
        if (type(data_input_df.loc[day, col]) == 'str'):
            data_input_df[col][day] = 0

数据数据帧为:

                           Log      1233.de ...      asdad.w.1    fff.op
Tagname                                     ...                        
01/06/2008 00:00            ON      343.04  ...        73.75      79.03
02/06/2008 00:00            ON      332.31  ...        73.71      79.21
03/06/2008 00:00            ON      339.25  ...        75.77      80.11
04/06/2008 00:00            ON      353.25  ...        76.47      79.75
05/06/2008 00:00            ON      353.44  ...        77.35      82.48

上载为:

dat =  pd.read_csv('data.csv', header = 0, index_col = "Tagname")
data = pd.DataFrame(data)
耶斯列尔

首先选择所有由对象填充的列,这是因为来自read_csv数据都是对象strings,创建字典并0在其中设置DataFrame.assign

d = dict.fromkeys(df.select_dtypes(object).columns, 0)
df = df.assign(**d)

print (df)
                  Log  1233.de  asdad.w.1  fff.op
Tagname                                          
01/06/2008 00:00    0   343.04      73.75   79.03
02/06/2008 00:00    0   332.31      73.71   79.21
03/06/2008 00:00    0   339.25      75.77   80.11
04/06/2008 00:00    0   353.25      76.47   79.75
05/06/2008 00:00    0   353.44      77.35   82.48

如果所有列的dtypes都是对象,因为后来的行中出现了一些字符串,该怎么办?

然后,如果没有缺失值,则to_numeric用于将所有列转换为数字,errors='coerce'如果没有数字,则用于缺失值,最后仅将所有缺失值替换为0

df = df.apply(pd.to_numeric, errors='coerce').fillna(0)

如果可能缺少值并且不必更改它们,则将无法使用fillna(因为已替换所有NaN),因此将其DataFrame.mask与链式测试原始数据一起使用新值:

df = df.apply(pd.to_numeric, errors='coerce').mask(lambda x: x.isna() & df.notna(), 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不覆盖的情况下替换 R 数据框中的值?

如何在不循环的情况下清除货币格式范围内的单元格

如何在不超时的情况下从单元格值中提取 URL?

如何在不“进入”列表的情况下更新列表中的单元格?

如何在NodeJS中不清除先前值的情况下更新单元格数据(google-sheets-api)

如何在没有填充的情况下更改Excel中单元格的值

如何在不使用for循环的情况下替换数据框中的某些行

如何在不刷新整个表的情况下刷新特定的DataGrid列单元格值

仅在满足一个条件的情况下如何查找字符串,然后从数据框中的单元格而不是行本身中删除值?

在Excel VBA中,如何在“状态丢失”(不写入单元格或文件)的情况下持久保存关键变量?

如何在不选择单元格的情况下解析范围名称

在不丢失数据的情况下合并Excel中的单元格

如何在不创建新列的情况下增加数据框中的值?

如何在不使用单元格坐标的情况下引用Excel数据表中的单元格?

如何在不删除左侧单元格中的数据的情况下将列向左移动?

替换熊猫数据框中每个单元格值的有效方法

如何在不复制空单元格的情况下复制过滤的数据

如何在不使用单元格的情况下创建数据验证列表?

如何在目标 C iOS 中不调用 cellForRowAtIndexPath 的情况下获取单元格?

如何在不使Swift中的单元格透明的情况下使UICollection视图的背景透明

如何在打开VBA的情况下解锁工作簿中的空白单元格

在单元格宽度也不同的情况下,如何在表格中自动换行?

替换熊猫数据框中的单元格值

如何在不选择Swift的情况下点击按钮或图像而不选择整个单元格?

如何在不插入PHP的每个循环的情况下将数组插入数据库

R:如果单元格上方和下方的值彼此匹配,则在不使用for循环的情况下更改单元格中的值

如何在不触发第二个调用的情况下使用Worksheet_change事件更改单元格值

如何在不循环的情况下将python JSON列表转换为数据框列

优化:在多种情况下替换数据框中的值