gpt4 book ai didi

python - 通过另一个文件 python pandas 获取 pandas 值

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:15 24 4
gpt4 key购买 nike

我有一个小样本数据集:

import pandas as pd

df = {'ID': ['H576','H577','H578','H600', 'H700'],
'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']}

df = pd.DataFrame(df)

看起来像:

Out[76]: 
CD ID
0 AAAAAAA H576
1 BBBBB H577
2 CCCCCC H578
3 DDDDDD H600
4 EEEEEEE H700

我还有一个小的 .txt 文件:

AAAAAAA
BBBBB
EEEEEEE

我想遍历数据框和 .txt 文件中的“CD”列,如果匹配,则在 .txt 文件中打印出 ID 和 CD。

想要输出,output.txt:

H576
AAAAAAA
H577
BBBBB
H700
EEEEEEE

我的尝试:

import pandas as pd


df = {'ID': ['H576','H577','H578','H600', 'H700'],
'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']}


df = pd.DataFrame(df)
f = open('file.txt')

for i in data.CD:
i = i.strip()
for line in f:
line = line.strip()

if df["CD"].str.contains(line).any():
position = df.index.get_indexer_for((df[df["CD"].str.contains(line)].index))
z = df.ReadID[position]
print(z)
print(line)

这不太正确,我想我可能想多了。

最佳答案

import pandas as pd

df = {'ID': ['H576','H577','H578','H600', 'H700'],
'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']}
df = pd.DataFrame(df)
keywords = pd.read_csv('file.txt', header=None)[0]

mask = df['CD'].isin(keywords)
result = df.loc[mask]
print(result[['ID', 'CD']].stack().to_csv(None, index=False))

产量

H576
AAAAAAA
H577
BBBBB
H700
EEEEEEE

  • pd.read_csvfile.txt 加载到 DataFrame 中。然后,您可以选择 DataFrame 中的单个列来定义系列关键字:

    keywords = pd.read_csv('file.txt', header=None)[0]
  • 然后可以使用 Series.isin 方法构造一个 bool 系列,当 df['CD'] 中的值在 关键字:

    mask = df['CD'].isin(keywords)
    # 0 True
    # 1 True
    # 2 False
    # 3 False
    # 4 True
  • 使用df.loc[mask] 选择dfmask 为True 的行:

    result = df.loc[mask]
    # CD ID
    # 0 AAAAAAA H576
    # 1 BBBBB H577
    # 4 EEEEEEE H700
  • 最后,可以使用df.to_csv 形成所需的字符串。通过传递 None 作为第一个参数 df.to_csv 返回一个字符串(而不是写入文件)

关于python - 通过另一个文件 python pandas 获取 pandas 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37620975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com