<p>我在<a href="https://stackoverflow.com/questions/36148386/check-if-one-string-contains-another-substring-in-python">this post</a>中找到了以下代码行:</p>
<pre><code>df[language] = df.apply(lambda x: language in df.LANGUAGES, axis = 1)
</code></pre>
<p>对于以下两行:</p>
<pre><code> criteria = lambda row : language in row["LANGUAGES"]
df[language] = df.apply(criteria, axis =1)
</code></pre>
<p>它是有效的</p>
<pre><code>import json
import pandas as pd
import requests
url = r"https://data.hud.gov/Housing_Counselor/search?AgencyName=&City=&State=&RowLimit=&Services=&Languages="
response = requests.get(url)
if response.status_code == 200:
res = response.json()
df = pd.DataFrame(res)
df.columns = [str(h).upper() for h in list(df)]
#
# the below line is confusing but it creates a sorted list of all unique languages
#
languages = [str(s) for s in sorted(list(set((",".join(list(df["LANGUAGES"].unique()))).split(","))))]
for language in languages:
criteria = lambda row : language in row["LANGUAGES"]
df[language] = df.apply(criteria, axis =1)
for language in languages:
print(df[language].value_counts())
print("\n")
else:
print("\nConnection was unsuccesful: {0}".format(response.status_code))
</code></pre>
<p>这种线路交换也可以起作用:</p>
<pre><code>for language in languages:
df[language] = df.LANGUAGES.apply(lambda x: 'True' if language in x else 'False')
print("{}:{}".format(language, df[df[language] == 'True'].shape[0]))
</code></pre>