2017-10-16 51 views
0

我有一个包含许多列和行的excel文件。 我想选择和只导入这些列中的一部分,只要他们有正确的内容(即如果任何一个列单元格包含CUP根据存在的值从数据框中选择列

我有下面的代码,但我没有工作。 my_excel photo

import pandas as pd 
mystring = pd.read_excel("my_excel.xlsx", parse_cols='CUP' in col for cols in my_excel.xlsx, skiprows=[0]) 
mystring = data.to_string() 
print(mystring) 


SyntaxError: invalid syntax 

输出应该是这样的:

mystring = 'SHOVEL2 CUP UMBRELLA WALLET MIKE GENARAL BASKET COFFEE TEA CUP SCREENING MOVIES' 

我在这里附上我的Excel文件的照片。

+0

不幸的是,你必须导入整个事情,然后根据内容过滤列。在加载之前,'pd.read_excel'不提供查看excel内部内容的功能。如果你想有选择地加载列,你需要事先知道你想包含哪些列。 –

+0

@coldspeed我明白了。 我应该将excel中的每一列作为单独的字符串导入吗? 然后选择包含'CUP'的字符串,然后连接所有选定的字符串? – Nguyen

回答

1

就像我刚才提到的,你需要先导入你的数据第一个,然后过滤它,然后加入你的过滤列。

df = pd.read_excel("my_excel.xlsx", skiprows=[0]) 
m = df.isin(['CUP']).any(axis=0) 
mystring = ' '.join(df.loc[:, m].values.ravel('F')) 
+0

我尝试了代码,我得到这个错误 'IndexingError:不可对齐的布尔系列作为索引器提供(布尔系列和索引对象的索引不匹配“ – Nguyen

+0

@Nguyen啊,我想问题是索引,现在已经改变了,所以再次检查? –

+0

现在有效,非常感谢。 – Nguyen

相关问题