![](/img/trans.png)
[英]How to append an empty column in a dataframe in Python Pandas
[英]how to fill an empty dataframe column in pandas python
我在Python 3.6中使用Pandas。 我的脚本加载了一个包含多个工作表的Excel文件。 在某些工作表中,行在两列上具有数字值或字符串值。 运行脚本后,数值会分为两列,但是我无法在第二列上复制第一列的字符串值。
对于数值,我正在使用:
df=df[['ID_Test']].join(df[pd_column].str.split(':',expand=True)).rename(columns={0: pd_column, 1: ''})
字符串值的第二列保持空白(无),并且必须使用与第一列相同的值进行更新
如果我使用: df[''] = df[pd_column]
,则第二列['']会完全更新为第一列的值(覆盖数字值),但我没有发现任何针对我的问题的解决方案。
数据输入:
ID_Test_1 Test_1
Indicator_1 AAAAAAA
Indicator_2 2.745 : 2.03
Indicator_3 BBBBBBBB
Indicator_4 -5.013 : -5.013
Indicator_5 CCCCCCCC
实际输出:(错误)
ID_Test_1 Test_1
Indicator_1 AAAAAAA None
Indicator_2 2.745 2.03
Indicator_3 BBBBBBBB None
Indicator_4 -5.013 -5.013
Indicator_5 CCCCCCCCC None
所需输出:
ID_Test_1 Test_1
Indicator_1 AAAAAAA AAAAAAA
Indicator_2 2.745 2.03
Indicator_3 BBBBBBBB BBBBBBBB
Indicator_4 -5.013 -5.013
Indicator_5 CCCCCCCCC CCCCCCCCC
第二列不得带有标签
根据您的示例数据和代码。 我只是在join
之前将ffill(1)
添加到拆分中
pd_column = 'Test_1'
(df[['ID_Test_1']].join(df[pd_column].str.split('\s+:\s+',expand=True).ffill(1))
.rename(columns={0: pd_column, 1: ''}))
Out[29]:
ID_Test_1 Test_1
0 Indicator_1 AAAAAAA AAAAAAA
1 Indicator_2 2.745 2.03
2 Indicator_3 BBBBBBBB BBBBBBBB
3 Indicator_4 -5.013 -5.013
4 Indicator_5 CCCCCCCC CCCCCCCC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.