Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串追加到dataframe中不会产生任何结果_Python_Pandas_List_Dataframe_Error Handling - Fatal编程技术网

Python 将字符串追加到dataframe中不会产生任何结果

Python 将字符串追加到dataframe中不会产生任何结果,python,pandas,list,dataframe,error-handling,Python,Pandas,List,Dataframe,Error Handling,我有一个使用熊猫和事务数据的数据框,它看起来像这样 "Transactions", "State in transaction" "Company name, Florida", "N/A" "Company name, California", "N/A" "Company name, Mississipi&

我有一个使用熊猫和事务数据的数据框,它看起来像这样

"Transactions",                 "State in transaction"
"Company name, Florida",         "N/A"
"Company name, California",      "N/A"
"Company name, Mississipi",      "N/A"
"Company name",                  "N/A"
             .                           .
             .                           .
             .                           .
等等。。。我还与美国和加拿大的州建立了数据框架。它看起来像这样:

"Alberta"
"British Columbia"
"Manitoba"
    .
    .
    .
如果状态在事务中,我如何插入它,那么它应该给出如下内容(如果在事务中找不到状态,则保留N/A):

目前我已尝试:

for i, transaction in enumerate(df["Transactions"]):
    for state in df_states:
        if state in transaction
            df["State in transaction"].append(state)
            break
感谢您的帮助。
谢谢

您可以使用
str.extract()
。另外,我假设您的列名在我下面的可复制代码中有引号。列名/值中的引号使它有点混乱。您的数据中是否有实际的引号

df = pd.DataFrame({'Transactions': {0: 'Company name, Florida',
  1: 'Company name, California',
  2: 'Company name, Mississipi',
  3: 'Company name'}})
df['State in transaction'] = df['Transactions'].str.extract(', (\w+)').fillna('N/A')
df

Out[1]: 
               Transactions State in transaction
0     Company name, Florida              Florida
1  Company name, California           California
2  Company name, Mississipi           Mississipi
3              Company name                  N/A

您可以使用
str.extract()
。另外,我假设您的列名在我下面的可复制代码中有引号。列名/值中的引号使它有点混乱。您的数据中是否有实际的引号

df = pd.DataFrame({'Transactions': {0: 'Company name, Florida',
  1: 'Company name, California',
  2: 'Company name, Mississipi',
  3: 'Company name'}})
df['State in transaction'] = df['Transactions'].str.extract(', (\w+)').fillna('N/A')
df

Out[1]: 
               Transactions State in transaction
0     Company name, Florida              Florida
1  Company name, California           California
2  Company name, Mississipi           Mississipi
3              Company name                  N/A

@艾米尔克:好的,我更新了没有引号。对不起,误读了,不,我在数据中没有引号。我不知道如何复制这个。我有大约1300个事务,我在想,对于每个事务,在状态数据框中找到一个匹配项。有数千个不同的公司名称-这仍然有效吗?@emilk尝试更新的排序-抱歉,如果我不准确,但是状态并不总是位于同一个位置,并且不是逗号分隔的(这只是一个例子).它可能看起来像:亚马逊(Amaze)#街名#州40359232FK@emilk好的,我更新了没有引号。对不起,误读,不,我在数据中没有引号。我不知道如何复制它。我有大约1300个事务,我在想,对于每个事务,在状态数据框中找到一个匹配项。有数千个di不同的公司名称-这仍然有效吗?@emilk尝试更新的工作类型-如果我不准确的话,很抱歉,但是州并不总是位于同一个地方,也不是逗号分隔的(只是一个例子)。它可能看起来像:Amaz#on/Street name#state 40359232FK