How do I fill a column with one value in Pandas?
Question:
I have a column with consecutive digits in a Pandas DataFrame.
A
1
2
3
4
I would like to change all those values to a simple string, say “foo”, resulting in
A
foo
foo
foo
foo
Answers:
Just select the column and assign like normal:
In [194]:
df['A'] = 'foo'
df
Out[194]:
A
0 foo
1 foo
2 foo
3 foo
Assigning a scalar value will set all the rows to the same scalar value
The good answer above throws a warning. You can also do:
df.insert(0, 'A', 'foo')
where 0 is the index where the new column will be inserted.
You could also try pd.Series.replace
:
df['A'] = df['A'].replace(df['A'], 'foo')
print(df)
Output:
A
0 foo
1 foo
2 foo
3 foo
You can use the method assign
:
df = df.assign(A='foo')
You can also exploit the power of the .loc
property by addressing all the rows using :
as the argument. Say that your DataFrame is called df
:
df.loc[:]['A'] = 'foo'
Resulting in
A
0 foo
1 foo
2 foo
3 foo
For this to work without receiving the slice error/warning, you can do this:
df.loc[:]['A'] = 'foo'
I have a column with consecutive digits in a Pandas DataFrame.
A
1
2
3
4
I would like to change all those values to a simple string, say “foo”, resulting in
A
foo
foo
foo
foo
Just select the column and assign like normal:
In [194]:
df['A'] = 'foo'
df
Out[194]:
A
0 foo
1 foo
2 foo
3 foo
Assigning a scalar value will set all the rows to the same scalar value
The good answer above throws a warning. You can also do:
df.insert(0, 'A', 'foo')
where 0 is the index where the new column will be inserted.
You could also try pd.Series.replace
:
df['A'] = df['A'].replace(df['A'], 'foo')
print(df)
Output:
A
0 foo
1 foo
2 foo
3 foo
You can use the method assign
:
df = df.assign(A='foo')
You can also exploit the power of the .loc
property by addressing all the rows using :
as the argument. Say that your DataFrame is called df
:
df.loc[:]['A'] = 'foo'
Resulting in
A
0 foo
1 foo
2 foo
3 foo
For this to work without receiving the slice error/warning, you can do this:
df.loc[:]['A'] = 'foo'