我是熊猫新手。我需要阅读xlsx
文件并使用pandas
将第一列转换为字典和第二列的键值,作为字典的值。我还需要跳过/排除第一行是标题。pandas:读取xlsx文件,以第1列作为键和第2列作为值
答案here用于pymysql
和here用于csv
。我需要用户pandas
。
这里是一个示例Excel数据
dict_key dict_value
key1 str_value1
key2 str_value2
key3 None
key4 int_value3
到目前为止我的代码如下所示。
import pandas as pd
excel_file = "file.xlsx"
xls = pd.ExcelFile(excel_file)
df = xls.parse(xls.sheet_names[0], skiprows=1, index_col=None, na_values=['None'])
data_dict = df.to_dict()
但是,它给了我字典,其中的键是列号和值都是列1数据以及列2数据。
>>> data_dict
{u'Chg_Parms': {0: u' key1 ', 1: u' key2 ', 2: u' key3 ', 3: u' key4 ', 4: u' str_value1 ',
5: u' str_value2 ', 6: u' Nan ', 6: u' int_value3 '}}
我想什么已经是COLUMN1数据作为关键和列两个数据的值,也NaN
与None
data_dict = {'key1': 'str_value1', 'key2': 'str_value2', 'key3': None, 'key4': int_value3}
感谢您的帮助更换。
@伯尼感谢。这绝对是我所需要的。但是,如何将每个键值转换为非unicode表示形式,去掉空白区域并保持其类型。例如。 str(u'1')的结果为'1',str(u'None')的结果为'None'。我需要'int'和'boolean'值。 –
@Anil_M:你非常欢迎。请参阅编辑答案。 – bernie
我在编码('utf8')旁边添加了.strip()来处理空白。我相信我的问题。谢谢。 –