如何覆盖第一行数据帧的值

时间:2018-03-25 00:21:31

标签: python python-3.x pandas dataframe

给出panda.Dataframe,例如:

df = pd.DataFrame(np.random.randn(10,5), columns = ['a','b','c','d','e'])

我想知道用0(或其他特定值)替换第一行中的所有值的最佳方法,并使用新的数据帧。我想以一般方式执行此操作,其中可能存在比此示例中更多或更少的列。

尽管问题很简单,但我无法找到解决方案。其他人发布的大多数示例都与fillna()和相关方法

有关

1 个答案:

答案 0 :(得分:3)

你可以使用iloc这样干净利落地完成:

代码:

df.iloc[0] = 0

测试代码:

df = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print(df)
df.iloc[0] = 0
print(df)

结果:

          a         b         c         d         e
0  0.715524 -0.914676  0.241008 -1.353033  0.170578
1 -0.300348  1.118491 -0.520407  0.185877 -0.950839
2  1.942239  0.980477  0.110457 -0.558483  0.903775
3  0.400923  1.347769 -0.120445  0.036253  0.683571
4 -0.761881 -0.642469  2.030019  2.274070 -0.067672
5  0.566003  0.263949 -0.567247  0.689599  0.870442
6  1.904812 -0.689312  1.400950  1.942681 -1.268679
7 -0.253381  0.464208  1.362960  0.129433  0.527576
8 -1.404035  0.174586  1.006268  0.007333  1.172559
9  0.330404  0.735610  1.277451 -0.104888  0.528356

          a         b         c         d         e
0  0.000000  0.000000  0.000000  0.000000  0.000000
1 -0.300348  1.118491 -0.520407  0.185877 -0.950839
2  1.942239  0.980477  0.110457 -0.558483  0.903775
3  0.400923  1.347769 -0.120445  0.036253  0.683571
4 -0.761881 -0.642469  2.030019  2.274070 -0.067672
5  0.566003  0.263949 -0.567247  0.689599  0.870442
6  1.904812 -0.689312  1.400950  1.942681 -1.268679
7 -0.253381  0.464208  1.362960  0.129433  0.527576
8 -1.404035  0.174586  1.006268  0.007333  1.172559
9  0.330404  0.735610  1.277451 -0.104888  0.528356