在pandas数据框列中首字母大写,同时保留其他列

时间:2018-07-09 09:09:45

标签: python pandas dataframe

问题:

嗨,我正在尝试在熊猫数据框中的每一行中大写第一列的第一个单词,当我尝试这样做时,我要么删除了数据框中的其他行,要么最后一个单词没有被大写。

当前代码:

import pandas as pd

df1 = pd.read_csv('foo.csv')

df2 = df1.replace('_', ' ', regex=True)

df2.Species.str.capitalize()

df2.to_csv('bar.csv',index=False)

所需的输出:

保留在df2中所做的替换,将下划线更改为空格,同时将新替换的df2中的第一个单词大写,然后保存为csv。

+-----------------------------+--------+-----+-----------+
|           Species           |   ID   | OGT |    DB     |
+-----------------------------+--------+-----+-----------+
| Streptomyces cirratus       |  68187 |  28 | DSMZ      |
| Halogeometricum borinquense |  60847 |  37 | ATCC/DSMZ |
| Sphingobium japonicum       | 332056 |  28 | DSMZ      |
+-----------------------------+--------+-----+-----------+

输入CSV子集:

+-----------------------------+--------+-----+-----------+
|           Species           |   ID   | OGT |    DB     |
+-----------------------------+--------+-----+-----------+
| streptomyces_cirratus       |  68187 |  28 | DSMZ      |
| halogeometricum_borinquense |  60847 |  37 | ATCC/DSMZ |
| sphingobium_japonicum       | 332056 |  28 | DSMZ      |
+-----------------------------+--------+-----+-----------+

1 个答案:

答案 0 :(得分:1)

需要分配回输出:

df2.Species = df2.Species.str.capitalize()

或者如果仅需要替换列Species

df1.Species = df1.Species.replace('_', ' ', regex=True).str.capitalize()
df1.to_csv('bar.csv',index=False)