【问题标题】:Compare data between Pandas series and Python list比较 Pandas 系列和 Python 列表之间的数据
【发布时间】:2018-05-30 18:18:26
【问题描述】:

我有一个 Information csv ,我在下面用来从下面的列(名称)中过滤一些特定的名称(罗尼)。需要帮助以粗体标记。

df= pd.read_csv('Info.csv',index_col=False)
App_=df[df['Names']=='Rony']
df_address=[]
address=App['Address']
df_address.append(address)

# 这是带索引的打印结果,我不想看到索引。可以避免在df_address中打印或删除索引吗?

print(df_address)
dct=next(os.walk('.'))[1] 

#下面不工作 ,需要帮助来解决这个问题。它如何与 pandas 一起工作。需要检查 df_address 中的目录名称是否可用

for i in df_address:        
    if i in dct:
        #Do Some operation

【问题讨论】:

  • 你说,“下面不工作”。你有任何错误吗?
  • Programs\Python\Python36-32\lib\site-packages\pandas\core\generic.py", line 1121, in __nonzero__ .format(self.__class__.__name__)) ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

标签: python python-3.x pandas dataframe series


【解决方案1】:

您不需要显式附加到新列表。 pandas 中有直接将系列转换为列表的功能:

df_address = App['Address'].tolist()

此外,您可以链接操作以使您的逻辑更具可读性。例如,您可以同时按行和列进行过滤:

df_address = df.loc[df['Names'] == 'Rony', 'Address']\
               .tolist()

【讨论】:

  • 感谢您让我了解tolist() 它解决了整个问题:)
  • os.walk - 如何递归地为目录完成?我必须写这个,但它似乎很长 - for i in directories: print(i) l=next(os.walk(i))[1] for k in l: print(k)
  • 我不确定。您可能需要提出一个单独的问题。
猜你喜欢
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多