我有一个xml文档,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Position>
<Search>
<Location>
<Region>OH</Region>
<Country>us</Country>
<Longitude>-816071</Longitude>
<Latitude>415051</Latitude>
</Location>
</Search>
</Position>
Run Code Online (Sandbox Code Playgroud)
我将其读入数据帧:
df = sqlContext.read.format('com.databricks.spark.xml').options(rowTag='Position').load('1.xml')
Run Code Online (Sandbox Code Playgroud)
我可以看到1列:
df.columns
['Search']
print df.select("Search")
DataFrame[Search: struct<Location:struct<Country:string,Latitude:bigint,Longitude:bigint,Region:string>>]
Run Code Online (Sandbox Code Playgroud)
如何访问嵌套列.前位置.区域?
我有2个dataFrames并希望比较它们并返回第一个(df1)中不在第二个(df2)中的行.我找到了一种方法来比较它们并返回差异,但无法弄清楚如何从df1只返回丢失的那些.
import pandas as pd
from pandas import Series, DataFrame
df1 = pd.DataFrame( {
"City" : ["Chicago", "San Franciso", "Boston"] ,
"State" : ["Illinois", "California", "Massachusett"] } )
df2 = pd.DataFrame( {
"City" : ["Chicago", "Mmmmiami", "Dallas" , "Omaha"] ,
"State" : ["Illinois", "Florida", "Texas", "Nebraska"] } )
df = pd.concat([df1, df2])
df = df.reset_index(drop=True)
df_gpby = df.groupby(list(df.columns))
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]
blah = df.reindex(idx)
Run Code Online (Sandbox Code Playgroud)