相关疑难解决方法(0)

替换pandas DataFrame中的列值

我正在尝试替换数据帧的一列中的值.列("女性")仅包含"女性"和"男性"的值.

我尝试过以下方法:

w['female']['female']='1'
w['female']['male']='0' 
Run Code Online (Sandbox Code Playgroud)

但是收到以前结果的完全相同的副本.

理想情况下,我希望获得一些类似于以下循环元素的输出.

if w['female'] =='female':
    w['female'] = '1';
else:
    w['female'] = '0';
Run Code Online (Sandbox Code Playgroud)

我查看了陷阱文档(http://pandas.pydata.org/pandas-docs/stable/gotchas.html),但无法弄清楚为什么没有发生.

任何帮助将不胜感激.

python pandas

113
推荐指数
10
解决办法
37万
查看次数

熊猫取代了价值观

我有以下数据帧:

     col
0    pre
1    post
2    a
3    b
4    post
5    pre
6    pre
Run Code Online (Sandbox Code Playgroud)

我想将数据框中不包含'pre'的所有行替换为'nonpre',因此数据框如下所示:

     col
0    pre
1    nonpre
2    nonpre
3    nonpre
4    nonpre
5    pre
6    pre
Run Code Online (Sandbox Code Playgroud)

我可以使用字典和pandas替换来做到这一点,但是我想只选择不是'pre'的元素并用'nonpre'替换它们.没有在字典中列出所有可能的col值,有更好的方法吗?

python replace pandas

14
推荐指数
2
解决办法
3万
查看次数

替换数据框的多个特定列中的值

我有以下数据框:

import pandas as pd
import numpy as np

raw_data = {
    'Score1': [42, 52, -999, 24, 73], 
    'Score2': [-999, -999, -999, 2, 1],
    'Score3': [2, 2, -999, 2, -999]}
df = pd.DataFrame(raw_data, columns = ['Score1', 'Score2', 'Score3'])
Run Code Online (Sandbox Code Playgroud)

我只想在 Score2 和 Score3 列中用 NaN 替换 -999,而 Score1 列保持不变。我想引用要按名称修改的列,它们可能不是连续的。

我试过这样的事情:

df.loc[:,('Score2', 'Score3')].replace(-999, np.nan, inplace=True)
df
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我假设是因为它在副本上运行。有没有办法在一个声明中做到这一点?

我查看了Pandas 替换特定列上的值,但发现它很混乱,所以觉得一个更简单的例子会有所帮助。

python dataframe pandas

4
推荐指数
2
解决办法
2167
查看次数

标签 统计

pandas ×3

python ×3

dataframe ×1

replace ×1