Extract a single value from a pandas dataframe

In Python I'm trying to extract a single value from a Pandas dataframe. I know exactly what the value contains, I just need to find it anywhere in the dataframe and extract it.

For example, in the dataframe below:

df = pd.DataFrame(
        {0: ['BA1234', 'CA:1234', 'DA','DA1234', 'EX DA', 'CA1234'],
         1: ['BA1234', 'CA:1234', 'DA','CA1234', 'EX DA', 'CA1234'],
         2: ['BA1234', 'CA:1234', 'DA','CA1234', 'EX DA', 'CA1234']})

I want to extract the string containing the two letters 'DA' and exactly 4 digits after it.

I've been trying this using a mask:

mask = pd.DataFrame(np.column_stack([df[col].str.contains('^DA\d{4}', na = False) for col in df]))

Which seems to work:

da_value = df[mask]

da_value
        0    1    2
0     NaN  NaN  NaN
1     NaN  NaN  NaN
2     NaN  NaN  NaN
3  DA1234  NaN  NaN
4     NaN  NaN  NaN
5     NaN  NaN  NaN

However, how do I extract the value from the dataframe? Is there a better/easier way of doing this?

Edit: The output I actually want is

da_value = 'DA1234'

Use DataFrame.stack first for Series, then filter by boolean indexing with Series.str.contains:

s = df.stack()
a = s[s.str.contains(r'^DA\d{4}', na=False)].tolist()

If need first value from list you can select:

print (a[0])
DA1234

Or general solution if possible no value exist, then default value is added:

print (next(iter(a), 'no match'))
DA1234

How to get a value from a cell of a dataframe?, Access a single value for a row/column label pair. Similar to loc , in that both provide label-based lookups. Use at if you only need to get or set a single value in a� Pandas is one of those packages and makes importing and analyzing data much easier. Pandas dataframe.get_value () function is used to quickly retrieve single value in the data frame at passed column and index. The input to the function is the row label and the column label. Syntax: DataFrame.get_value (index, col, takeable=False)

You can use df.apply() to apply series.str.contains() along with df.any() over axis=1 to fetch the rows where any column matches the pattern:

df[df.apply(lambda x: x.str.contains(r'^DA\d{4}', na=False)).any(axis=1)]

        0       1       2
3  DA1234  CA1234  CA1234

pandas.DataFrame.at — pandas 1.1.2 documentation, Accessing a single value or setting up the value of single row is Pandas xs Extract a particular cross section from a Series/DataFrame. Get single value from dataframe pandas. 626. January 24, 2018, at 6:57 PM. I have a dataframe A:

if you only want that row in which a string follows the condition, below works

using re.findall

df.loc[df.apply(lambda x: True if re.findall('^DA\d{4}',x[0]) or re.findall('^DA\d{4}',x[1]) or re.findall('^DA\d{4}',x[2]) else False, axis=1)]

Output

        0       1       2
3  DA1234  CA1234  CA1234

Updated

df.apply(lambda x: re.findall('^DA\d{4}',' '.join(list(x))), axis=1).any()[0]

Output

'DA1234'

Pandas how to get a cell value and update it, Extracting specific columns of a pandas dataframe � That for example would return the mean income value for year 2005 for all states of the dataframe. For pandas 0.10, where iloc is unavalable, filter a DF and get the first row data for the column VALUE: df_filt = df[df['C1'] == C1val & df['C2'] == C2val] result = df_filt.get_value(df_filt.index,'VALUE') if there is more then 1 row filtered, obtain the first row value. There will be an exception if the filter result in empty data frame.

As you want to search the value anywhere in the dataframe, you could reshape the values to make it a single dimension Series:

s = pd.Series(df.values.reshape(len(df) * len(df.columns)))
s = s.loc[s.str.match(r'DA[0-9]{4}')]
if len(s) == 0:
    print('Not found')
else:
    print(s.iloc[0])

With your example data it just prints

DA1234

Accessing pandas dataframe columns, rows, and cells, Each individual value of the columns is called a column, but can also be referred to Extracting the individual DataFrame components Selecting a single column of data returns the other pandas data container, the Series. .at selects a single scalar value in the DataFrame by label only.iat selects a single scalar value in the DataFrame by integer location only In addition to selection by label and integer location, boolean selection also known as boolean indexing exists. Dataframe cell value by Column Label

Selecting Subsets of Data in Pandas: Part 1 | by Ted Petrou, First, let's extract the rows from the data frame in both R and Python. the example of extracting a single row from the data frame, the output in R is still in the We can apply any kind of boolean values in the “cond_” position. import pandas as pd letters=pd.Series(('A', 'B', 'C', 'D')) numbers=pd.Series((1, 2, 3, 4)) keys= ('Letters', 'Numbers') df=pd.concat((letters, numbers), axis=1, keys=keys) Now I want to get the value C from the column Letters.

Extract Rows/Columns from A Dataframe in Python & R, How to extract a value from a Pandas DataFrame in Python. Extracting a value from a Pandas DataFrame gets a specific element from a DataFrame . If you’re wondering, the first row of the dataframe has an index of 0. That’s just how indexing works in Python and pandas. Extracting a single cell from a pandas dataframe ¶ df2.loc["California","2013"] Note that you can also apply methods to the subsets: df2.loc[:,"2005"].mean() That for example would return the mean income value for

How to extract a value from a Pandas DataFrame in Python, P is Pandas dataFrame which has many columns of type Numpy. /community/ 20257/extract-column-value-based-on-another-column-pandas-dataframe the return document-term matrix into one of the new column of pandas dataframe,� The standard python array slice syntax x[apos:bpos:incr] can be used to extract a range of rows from a DataFrame. However, the pandas documentation recommends the use of more efficient row access methods presented below. 2.1. First Few Rows. You can also use the head() method for this operation.

Comments
  • Sorry, I realized my question wasn't clear. The result I'm actually looking for is the string itself 'DA1234'
  • Awesome, this is what i'm looking for. Thank you!
  • i like this..+1
  • Sorry, I realized my question wasn't clear. The result I'm actually looking for is the string itself 'DA1234'
  • Sorry, I realized my question wasn't clear. The result I'm actually looking for is the string itself 'DA1234'