为pandas dataframe插入标题行

时间:2018-04-05 13:12:57

标签: python pandas

我刚刚启动了python,并且正在尝试在python中重写我的一个perl脚本。基本上,我有一个很长的脚本将csv转换为json。

我试图将我的csv导入到pandas数据框中,并希望在顶部插入一个标题行,因为我的csv缺乏这一点。 代码:

import pandas
db=pandas.read_csv("netmedsdb.csv",header=None)
db

输出:

0   1   2   3
0   3M CAVILON NO STING BARRIER FILM SPRAY 28ML OTC 0   Rs.880.00   3M INDIA LTD
1   BACTI BAR SOAP 75GM OTC Rs.98.00    6TH SKIN PHARMACEUTICALS PVT LTD
2   KWIKNIC MINT FLAVOUR 4MG CHEW GUM TABLET 30'S   NICOTINE    Rs.180.00   A S V LABORATORIES INDIA PVT LTD
3   RIFAGO 550MG TABLET 10'S    RIFAXIMIN 550MG Rs.298.00   AAREEN HEALTHCARE
4   999 OIL 60ML    AYURVEDIC MEDICINE  Rs.120.00   AAKASH PHARMACEUTICALS
5   AKASH SOAP 75GM AYURVEDIC PRODUCT   Rs.80.00    AAKASH PHARMACEUTICALS
6   GROW CARE OIL 100ML AYURVEDIC MEDICINE  Rs.190.00   AAKASH PHARMACEUTICALS
7   GROW CARE OIL 100ML AYURVEDIC MEDICINE  Rs.190.00   AAKASH PHARMACEUTICALS
8   RHUNS OIL 30ML  AYURVEDIC   Rs.50.00    AAKASH PHARMACEUTICALS
9   VILLO CAPSULE 10'S  AYURVEDIC MEDICINE  Rs.70.00    AAKASH PHARMACEUTICALS
10  VITAWIN FORTE CAPSULE 10'S  AYURVEDIC MEDICINE  Rs.150.00   AAKASH PHARMACEUTICALS

我编写了以下代码,在第0行插入第一个元素,coloumn 0:

db.insert(loc=0,column='0',value='Brand')
db

输出:

0   0   1   2   3
0   Brand   3M CAVILON NO STING BARRIER FILM SPRAY 28ML OTC 0   Rs.880.00   3M INDIA LTD
1   Brand   BACTI BAR SOAP 75GM OTC Rs.98.00    6TH SKIN PHARMACEUTICALS PVT LTD
2   Brand   KWIKNIC MINT FLAVOUR 4MG CHEW GUM TABLET 30'S   NICOTINE    Rs.180.00   A S V LABORATORIES INDIA PVT LTD
3   Brand   RIFAGO 550MG TABLET 10'S    RIFAXIMIN 550MG Rs.298.00   AAREEN HEALTHCARE
4   Brand   999 OIL 60ML    AYURVEDIC MEDICINE  Rs.120.00   AAKASH PHARMACEUTICALS
5   Brand   AKASH SOAP 75GM AYURVEDIC PRODUCT   Rs.80.00    AAKASH PHARMACEUTICALS
6   Brand   GROW CARE OIL 100ML AYURVEDIC MEDICINE  Rs.190.00   AAKASH PHARMACEUTICALS
7   Brand   GROW CARE OIL 100ML AYURVEDIC MEDICINE  Rs.190.00   AAKASH PHARMACEUTICALS
8   Brand   RHUNS OIL 30ML  AYURVEDIC   Rs.50.00    AAKASH PHARMACEUTICALS
9   Brand   VILLO CAPSULE 10'S  AYURVEDIC MEDICINE  Rs.70.00    AAKASH PHARMACEUTICALS
10  Brand   VITAWIN FORTE CAPSULE 10'S  AYURVEDIC MEDICINE  Rs.150.00   AAKASH PHARMACEUTICALS

但不幸的是我得到了“#34; Brand"在所有行的coloumn 0处插入。

我试图添加标题颜色&#34;品牌&#34;,&#34; Generic&#34;,&#34; Price&#34;,&#34;公司&#34; < / p>

1 个答案:

答案 0 :(得分:2)

仅在read_csv中需要参数names

import pandas as pd

temp=u"""a,b,10,d
e,f,45,r
"""
#after testing replace 'pd.compat.StringIO(temp)' to 'netmedsdb.csv'
df = pd.read_csv(pd.compat.StringIO(temp), names=["Brand", "Generic", "Price", "Company"])
print (df)
  Brand Generic  Price Company
0     a       b     10       d
1     e       f     45       r